forked from TheAlgorithms/Python
-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Travis CI: Run black, doctest, flake8, mypy, and pytest (TheAlgorithm…
…s#964) * Travis CI: Add type checking with mypy * Create requirements.txt * script: mypy --ignore-missing-stubs=cv2,numpy . * Delete requirements.txt * script: mypy --ignore-missing-imports . * Run doctests * Disable doctest -v other/detecting_english_programmatically.py * Pytest * No | * pytest || true * Run black doctest flake8 mypy pytest * after_success: Build Directory.md * Typo in filename: Dictionary.txt --> dictionary.txt' Discovered via doctest run in TheAlgorithms#964 * python -m doctest -v * pip install black flake8 mypy pytest * pytest --doctest-glob='*.py' * pytest --doctest-modules * pytest --doctest-modules ./sorts * pytest --doctest-modules ./ciphers ./other ./searches ./sorts ./strings || true * if __name__ == "__main__": * if __name__ == "__main__": * if __name__ == '__main__': * if __name__ == '__main__': * if __name__ == '__main__': * Create requirements.txt * Update requirements.txt * if __name__ == "__main__": * Lose the doctests * if __name__ == '__main__': * Remove print-a-tuple * doctest: Added missing spaces * Update tabu_search.py * The >>> are not doctests so change to >>) * Travis CI: Run black, doctest, flake8, mypy, and pytest * Link to the separate DIRECTORY.md file * Update README.md
- Loading branch information
Showing
11 changed files
with
56 additions
and
365 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,5 +1,14 @@ | ||
language: python | ||
dist: xenial # required for Python >= 3.7 | ||
python: 3.7 | ||
install: pip install flake8 | ||
script: flake8 . --count --select=E9,F63,F7,F82 --show-source --statistics | ||
cache: pip | ||
install: pip install -r requirements.txt | ||
before_script: | ||
- black --check . || true | ||
- flake8 . --count --select=E9,F63,F7,F82 --show-source --statistics | ||
script: | ||
- mypy --ignore-missing-imports . | ||
- pytest --doctest-modules ./ciphers ./other ./searches ./sorts ./strings | ||
after_success: | ||
- python ./~script.py | ||
- cat DIRECTORY.md |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -12,12 +12,12 @@ These implementations are for learning purposes. They may be less efficient than | |
|
||
Anup Kumar Panwar | ||
[[Gmail](mailto:[email protected]?Subject=The%20Algorithms%20-%20Python) | ||
[Gihub](https://github.com/anupkumarpanwar) | ||
[GitHub](https://github.com/anupkumarpanwar) | ||
[LinkedIn](https://www.linkedin.com/in/anupkumarpanwar/)] | ||
|
||
Chetan Kaushik | ||
[[Gmail](mailto:[email protected]?Subject=The%20Algorithms%20-%20Python) | ||
[Gihub](https://github.com/dynamitechetan) | ||
[GitHub](https://github.com/dynamitechetan) | ||
[LinkedIn](https://www.linkedin.com/in/chetankaushik/)] | ||
|
||
## Contribution Guidelines | ||
|
@@ -28,337 +28,6 @@ Read our [Contribution Guidelines](CONTRIBUTING.md) before you contribute. | |
|
||
We're on [Gitter](https://gitter.im/TheAlgorithms)! Please join us. | ||
|
||
# Algorithms | ||
## Algorithms | ||
|
||
## Hashes | ||
|
||
- [Md5](./hashes/md5.py) | ||
- [Chaos Machine](./hashes/chaos_machine.py) | ||
- [Sha1](./hashes/sha1.py) | ||
|
||
## File Transfer Protocol | ||
|
||
- [Ftp Client Server](./file_transfer_protocol/ftp_client_server.py) | ||
- [Ftp Send Receive](./file_transfer_protocol/ftp_send_receive.py) | ||
|
||
## Backtracking | ||
|
||
- [N Queens](./backtracking/n_queens.py) | ||
- [Sum Of Subsets](./backtracking/sum_of_subsets.py) | ||
- [All Subsequences](./backtracking/all_subsequences.py) | ||
- [All Permutations](./backtracking/all_permutations.py) | ||
|
||
## Ciphers | ||
|
||
- [Transposition Cipher](./ciphers/transposition_cipher.py) | ||
- [Atbash](./ciphers/Atbash.py) | ||
- [Rot13](./ciphers/rot13.py) | ||
- [Rabin Miller](./ciphers/rabin_miller.py) | ||
- [Transposition Cipher Encrypt Decrypt File](./ciphers/transposition_cipher_encrypt_decrypt_file.py) | ||
- [Affine Cipher](./ciphers/affine_cipher.py) | ||
- [Trafid Cipher](./ciphers/trafid_cipher.py) | ||
- [Base16](./ciphers/base16.py) | ||
- [Elgamal Key Generator](./ciphers/elgamal_key_generator.py) | ||
- [Rsa Cipher](./ciphers/rsa_cipher.py) | ||
- [Prehistoric Men.txt](./ciphers/prehistoric_men.txt) | ||
- [Vigenere Cipher](./ciphers/vigenere_cipher.py) | ||
- [Xor Cipher](./ciphers/xor_cipher.py) | ||
- [Brute Force Caesar Cipher](./ciphers/brute_force_caesar_cipher.py) | ||
- [Rsa Key Generator](./ciphers/rsa_key_generator.py) | ||
- [Simple Substitution Cipher](./ciphers/simple_substitution_cipher.py) | ||
- [Playfair Cipher](./ciphers/playfair_cipher.py) | ||
- [Morse Code Implementation](./ciphers/morse_Code_implementation.py) | ||
- [Base32](./ciphers/base32.py) | ||
- [Base85](./ciphers/base85.py) | ||
- [Base64 Cipher](./ciphers/base64_cipher.py) | ||
- [Onepad Cipher](./ciphers/onepad_cipher.py) | ||
- [Caesar Cipher](./ciphers/caesar_cipher.py) | ||
- [Hill Cipher](./ciphers/hill_cipher.py) | ||
- [Cryptomath Module](./ciphers/cryptomath_module.py) | ||
|
||
## Arithmetic Analysis | ||
|
||
- [Bisection](./arithmetic_analysis/bisection.py) | ||
- [Newton Method](./arithmetic_analysis/newton_method.py) | ||
- [Newton Raphson Method](./arithmetic_analysis/newton_raphson_method.py) | ||
- [Intersection](./arithmetic_analysis/intersection.py) | ||
- [Lu Decomposition](./arithmetic_analysis/lu_decomposition.py) | ||
|
||
## Boolean Algebra | ||
|
||
- [Quine Mc Cluskey](./boolean_algebra/quine_mc_cluskey.py) | ||
|
||
## Traversals | ||
|
||
- [Binary Tree Traversals](./traversals/binary_tree_traversals.py) | ||
|
||
## Maths | ||
|
||
- [Average](./maths/average.py) | ||
- [Abs Max](./maths/abs_Max.py) | ||
- [Average Median](./maths/average_median.py) | ||
- [Trapezoidal Rule](./maths/trapezoidal_rule.py) | ||
- [Prime Check](./maths/Prime_Check.py) | ||
- [Modular Exponential](./maths/modular_exponential.py) | ||
- [Newton Raphson](./maths/newton_raphson.py) | ||
- [Factorial Recursive](./maths/factorial_recursive.py) | ||
- [Extended Euclidean Algorithm](./maths/extended_euclidean_algorithm.py) | ||
- [Greater Common Divisor](./maths/greater_common_divisor.py) | ||
- [Fibonacci](./maths/fibonacci.py) | ||
- [Find Lcm](./maths/find_lcm.py) | ||
- [Find Max](./maths/Find_Max.py) | ||
- [Fermat Little Theorem](./maths/fermat_little_theorem.py) | ||
- [Factorial Python](./maths/factorial_python.py) | ||
- [Fibonacci Sequence Recursion](./maths/fibonacci_sequence_recursion.py) | ||
- [Sieve Of Eratosthenes](./maths/sieve_of_eratosthenes.py) | ||
- [Abs Min](./maths/abs_Min.py) | ||
- [Lucas Series](./maths/lucasSeries.py) | ||
- [Segmented Sieve](./maths/segmented_sieve.py) | ||
- [Find Min](./maths/Find_Min.py) | ||
- [Abs](./maths/abs.py) | ||
- [Simpson Rule](./maths/simpson_rule.py) | ||
- [Basic Maths](./maths/basic_maths.py) | ||
- [3n+1](./maths/3n+1.py) | ||
- [Binary Exponentiation](./maths/Binary_Exponentiation.py) | ||
|
||
## Digital Image Processing | ||
|
||
- ## Filters | ||
|
||
- [Median Filter](./digital_image_processing/filters/median_filter.py) | ||
- [Gaussian Filter](./digital_image_processing/filters/gaussian_filter.py) | ||
|
||
|
||
## Compression | ||
|
||
- [Peak Signal To Noise Ratio](./compression/peak_signal_to_noise_ratio.py) | ||
- [Huffman](./compression/huffman.py) | ||
|
||
## Graphs | ||
|
||
- [BFS Shortest Path](./graphs/bfs_shortest_path.py) | ||
- [Directed And Undirected (Weighted) Graph](<./graphs/Directed_and_Undirected_(Weighted)_Graph.py>) | ||
- [Minimum Spanning Tree Prims](./graphs/minimum_spanning_tree_prims.py) | ||
- [Graph Matrix](./graphs/graph_matrix.py) | ||
- [Basic Graphs](./graphs/basic_graphs.py) | ||
- [Dijkstra 2](./graphs/dijkstra_2.py) | ||
- [Tarjans Strongly Connected Components](./graphs/tarjans_scc.py) | ||
- [Check Bipartite Graph BFS](./graphs/check_bipartite_graph_bfs.py) | ||
- [Depth First Search](./graphs/depth_first_search.py) | ||
- [Kahns Algorithm Long](./graphs/kahns_algorithm_long.py) | ||
- [Breadth First Search](./graphs/breadth_first_search.py) | ||
- [Dijkstra](./graphs/dijkstra.py) | ||
- [Articulation Points](./graphs/articulation_points.py) | ||
- [Bellman Ford](./graphs/bellman_ford.py) | ||
- [Check Bipartite Graph Dfs](./graphs/check_bipartite_graph_dfs.py) | ||
- [Strongly Connected Components Kosaraju](./graphs/scc_kosaraju.py) | ||
- [Multi Hueristic Astar](./graphs/multi_hueristic_astar.py) | ||
- [Page Rank](./graphs/page_rank.py) | ||
- [Eulerian Path And Circuit For Undirected Graph](./graphs/Eulerian_path_and_circuit_for_undirected_graph.py) | ||
- [Edmonds Karp Multiple Source And Sink](./graphs/edmonds_karp_multiple_source_and_sink.py) | ||
- [Floyd Warshall](./graphs/floyd_warshall.py) | ||
- [Minimum Spanning Tree Kruskal](./graphs/minimum_spanning_tree_kruskal.py) | ||
- [Prim](./graphs/prim.py) | ||
- [Kahns Algorithm Topo](./graphs/kahns_algorithm_topo.py) | ||
- [BFS](./graphs/BFS.py) | ||
- [Finding Bridges](./graphs/finding_bridges.py) | ||
- [Graph List](./graphs/graph_list.py) | ||
- [Dijkstra Algorithm](./graphs/dijkstra_algorithm.py) | ||
- [A Star](./graphs/a_star.py) | ||
- [Even Tree](./graphs/even_tree.py) | ||
- [DFS](./graphs/DFS.py) | ||
|
||
## Networking Flow | ||
|
||
- [Minimum Cut](./networking_flow/minimum_cut.py) | ||
- [Ford Fulkerson](./networking_flow/ford_fulkerson.py) | ||
|
||
## Matrix | ||
|
||
- [Matrix Operation](./matrix/matrix_operation.py) | ||
- [Searching In Sorted Matrix](./matrix/searching_in_sorted_matrix.py) | ||
- [Spiral Print](./matrix/spiral_print.py) | ||
|
||
## Searches | ||
|
||
- [Quick Select](./searches/quick_select.py) | ||
- [Binary Search](./searches/binary_search.py) | ||
- [Interpolation Search](./searches/interpolation_search.py) | ||
- [Jump Search](./searches/jump_search.py) | ||
- [Linear Search](./searches/linear_search.py) | ||
- [Ternary Search](./searches/ternary_search.py) | ||
- [Tabu Search](./searches/tabu_search.py) | ||
- [Sentinel Linear Search](./searches/sentinel_linear_search.py) | ||
|
||
## Conversions | ||
|
||
- [Decimal To Binary](./conversions/decimal_to_binary.py) | ||
- [Decimal To Octal](./conversions/decimal_to_octal.py) | ||
|
||
## Dynamic Programming | ||
|
||
- [Fractional Knapsack](./dynamic_programming/Fractional_Knapsack.py) | ||
- [Sum Of Subset](./dynamic_programming/sum_of_subset.py) | ||
- [Fast Fibonacci](./dynamic_programming/fast_fibonacci.py) | ||
- [Bitmask](./dynamic_programming/bitmask.py) | ||
- [Abbreviation](./dynamic_programming/abbreviation.py) | ||
- [Rod Cutting](./dynamic_programming/rod_cutting.py) | ||
- [Knapsack](./dynamic_programming/knapsack.py) | ||
- [Max Sub Array](./dynamic_programming/max_sub_array.py) | ||
- [Fibonacci](./dynamic_programming/fibonacci.py) | ||
- [Minimum Partition](./dynamic_programming/minimum_partition.py) | ||
- [K Means Clustering Tensorflow](./dynamic_programming/k_means_clustering_tensorflow.py) | ||
- [Coin Change](./dynamic_programming/coin_change.py) | ||
- [Subset Generation](./dynamic_programming/subset_generation.py) | ||
- [Floyd Warshall](./dynamic_programming/floyd_warshall.py) | ||
- [Longest Sub Array](./dynamic_programming/longest_sub_array.py) | ||
- [Integer Partition](./dynamic_programming/integer_partition.py) | ||
- [Matrix Chain Order](./dynamic_programming/matrix_chain_order.py) | ||
- [Edit Distance](./dynamic_programming/edit_distance.py) | ||
- [Longest Common Subsequence](./dynamic_programming/longest_common_subsequence.py) | ||
- [Longest Increasing Subsequence O(nlogn)](<./dynamic_programming/longest_increasing_subsequence_O(nlogn).py>) | ||
- [Longest Increasing Subsequence](./dynamic_programming/longest_increasing_subsequence.py) | ||
|
||
## Divide And Conquer | ||
|
||
- [Max Subarray Sum](./divide_and_conquer/max_subarray_sum.py) | ||
- [Closest Pair Of Points](./divide_and_conquer/closest_pair_of_points.py) | ||
|
||
## Strings | ||
|
||
- [Knuth Morris Pratt](./strings/knuth_morris_pratt.py) | ||
- [Rabin Karp](./strings/rabin_karp.py) | ||
- [Naive String Search](./strings/naive_String_Search.py) | ||
- [Levenshtein Distance](./strings/levenshtein_distance.py) | ||
- [Min Cost String Conversion](./strings/min_cost_string_conversion.py) | ||
- [Boyer Moore Search](./strings/Boyer_Moore_Search.py) | ||
- [Manacher](./strings/manacher.py) | ||
|
||
## Sorts | ||
|
||
- [Quick Sort](./sorts/quick_sort.py) | ||
- [Selection Sort](./sorts/selection_sort.py) | ||
- [Bitonic Sort](./sorts/Bitonic_Sort.py) | ||
- [Cycle Sort](./sorts/cycle_sort.py) | ||
- [Comb Sort](./sorts/comb_sort.py) | ||
- [Topological Sort](./sorts/topological_sort.py) | ||
- [Merge Sort Fastest](./sorts/merge_sort_fastest.py) | ||
- [Random Pivot Quick Sort](./sorts/random_pivot_quick_sort.py) | ||
- [Heap Sort](./sorts/heap_sort.py) | ||
- [Insertion Sort](./sorts/insertion_sort.py) | ||
- [Counting Sort](./sorts/counting_sort.py) | ||
- [Bucket Sort](./sorts/bucket_sort.py) | ||
- [Quick Sort 3 Partition](./sorts/quick_sort_3_partition.py) | ||
- [Bogo Sort](./sorts/bogo_sort.py) | ||
- [Shell Sort](./sorts/shell_sort.py) | ||
- [Pigeon Sort](./sorts/pigeon_sort.py) | ||
- [Odd-Even Transposition Parallel](./sorts/Odd-Even_transposition_parallel.py) | ||
- [Tree Sort](./sorts/tree_sort.py) | ||
- [Cocktail Shaker Sort](./sorts/cocktail_shaker_sort.py) | ||
- [Random Normal Distribution Quicksort](./sorts/random_normal_distribution_quicksort.py) | ||
- [Wiggle Sort](./sorts/wiggle_sort.py) | ||
- [Pancake Sort](./sorts/pancake_sort.py) | ||
- [External Sort](./sorts/external_sort.py) | ||
- [Tim Sort](./sorts/tim_sort.py) | ||
- [Sorting Graphs.png](./sorts/sorting_graphs.png) | ||
- [Radix Sort](./sorts/radix_sort.py) | ||
- [Odd-Even Transposition Single-threaded](./sorts/Odd-Even_transposition_single-threaded.py) | ||
- [Bubble Sort](./sorts/bubble_sort.py) | ||
- [Gnome Sort](./sorts/gnome_sort.py) | ||
- [Merge Sort](./sorts/merge_sort.py) | ||
|
||
## Machine Learning | ||
|
||
- [Perceptron](./machine_learning/perceptron.py) | ||
- [Random Forest Classifier](./machine_learning/random_forest_classification/random_forest_classifier.ipynb) | ||
- [NaiveBayes.ipynb](./machine_learning/NaiveBayes.ipynb) | ||
- [Scoring Functions](./machine_learning/scoring_functions.py) | ||
- [Logistic Regression](./machine_learning/logistic_regression.py) | ||
- [Gradient Descent](./machine_learning/gradient_descent.py) | ||
- [Linear Regression](./machine_learning/linear_regression.py) | ||
- [Random Forest Regression](./machine_learning/random_forest_regression/random_forest_regression.py) | ||
- [Random Forest Regression](./machine_learning/random_forest_regression/random_forest_regression.ipynb) | ||
- [Reuters One Vs Rest Classifier.ipynb](./machine_learning/reuters_one_vs_rest_classifier.ipynb) | ||
- [Decision Tree](./machine_learning/decision_tree.py) | ||
- [Knn Sklearn](./machine_learning/knn_sklearn.py) | ||
- [K Means Clust](./machine_learning/k_means_clust.py) | ||
|
||
## Neural Network | ||
|
||
- [Perceptron](./neural_network/perceptron.py) | ||
- [Fully Connected Neural Network](./neural_network/fully_connected_neural_network.ipynb) | ||
- [Convolution Neural Network](./neural_network/convolution_neural_network.py) | ||
- [Back Propagation Neural Network](./neural_network/back_propagation_neural_network.py) | ||
|
||
## Data Structures | ||
|
||
- ## Binary Tree | ||
|
||
- [Basic Binary Tree](./data_structures/binary_tree/basic_binary_tree.py) | ||
- [Red Black Tree](./data_structures/binary_tree/red_black_tree.py) | ||
- [Fenwick Tree](./data_structures/binary_tree/fenwick_tree.py) | ||
- [Treap](./data_structures/binary_tree/treap.py) | ||
- [AVL Tree](./data_structures/binary_tree/AVL_tree.py) | ||
- [Segment Tree](./data_structures/binary_tree/segment_tree.py) | ||
- [Lazy Segment Tree](./data_structures/binary_tree/lazy_segment_tree.py) | ||
- [Binary Search Tree](./data_structures/binary_tree/binary_search_tree.py) | ||
|
||
- ## Trie | ||
|
||
- [Trie](./data_structures/trie/trie.py) | ||
|
||
- ## Linked List | ||
|
||
- [Swap Nodes](./data_structures/linked_list/swap_nodes.py) | ||
- [Doubly Linked List](./data_structures/linked_list/doubly_linked_list.py) | ||
- [Singly Linked List](./data_structures/linked_list/singly_linked_list.py) | ||
- [Is Palindrome](./data_structures/linked_list/is_Palindrome.py) | ||
|
||
- ## Stacks | ||
|
||
- [Postfix Evaluation](./data_structures/stacks/postfix_evaluation.py) | ||
- [Balanced Parentheses](./data_structures/stacks/balanced_parentheses.py) | ||
- [Infix To Prefix Conversion](./data_structures/stacks/infix_to_prefix_conversion.py) | ||
- [Stack](./data_structures/stacks/stack.py) | ||
- [Infix To Postfix Conversion](./data_structures/stacks/infix_to_postfix_conversion.py) | ||
- [Next Greater Element](./data_structures/stacks/next_greater_element.py) | ||
- [Stock Span Problem](./data_structures/stacks/stock_span_problem.py) | ||
|
||
- ## Queue | ||
|
||
- [Queue On Pseudo Stack](./data_structures/queue/queue_on_pseudo_stack.py) | ||
- [Double Ended Queue](./data_structures/queue/double_ended_queue.py) | ||
- [Queue On List](./data_structures/queue/queue_on_list.py) | ||
|
||
- ## Heap | ||
|
||
- [Heap](./data_structures/heap/heap.py) | ||
|
||
- ## Hashing | ||
|
||
- [Hash Table With Linked List](./data_structures/hashing/hash_table_with_linked_list.py) | ||
- [Quadratic Probing](./data_structures/hashing/quadratic_probing.py) | ||
- [Hash Table](./data_structures/hashing/hash_table.py) | ||
- [Double Hash](./data_structures/hashing/double_hash.py) | ||
|
||
|
||
## Other | ||
|
||
- [Detecting English Programmatically](./other/detecting_english_programmatically.py) | ||
- [Fischer Yates Shuffle](./other/fischer_yates_shuffle.py) | ||
- [Primelib](./other/primelib.py) | ||
- [Binary Exponentiation 2](./other/binary_exponentiation_2.py) | ||
- [Anagrams](./other/anagrams.py) | ||
- [Palindrome](./other/palindrome.py) | ||
- [Finding Primes](./other/finding_Primes.py) | ||
- [Two Sum](./other/two_sum.py) | ||
- [Password Generator](./other/password_generator.py) | ||
- [Linear Congruential Generator](./other/linear_congruential_generator.py) | ||
- [Frequency Finder](./other/frequency_finder.py) | ||
- [Euclidean Gcd](./other/euclidean_gcd.py) | ||
- [Word Patterns](./other/word_patterns.py) | ||
- [Nested Brackets](./other/nested_brackets.py) | ||
- [Binary Exponentiation](./other/binary_exponentiation.py) | ||
- [Sierpinski Triangle](./other/sierpinski_triangle.py) | ||
- [Game Of Life](./other/game_of_life.py) | ||
- [Tower Of Hanoi](./other/tower_of_hanoi.py) | ||
See our [directory](DIRECTORY.md). |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -18,4 +18,6 @@ def Atbash(): | |
output+=i | ||
print(output) | ||
|
||
Atbash() | ||
|
||
if __name__ == '__main__': | ||
Atbash() |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -59,4 +59,7 @@ def main(): | |
elif choice == '4': | ||
print ("Goodbye.") | ||
break | ||
main() | ||
|
||
|
||
if __name__ == '__main__': | ||
main() |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.