Skip to content

Commit f9bd51a

Browse files
authored
Merge pull request #8 from TheAlgorithms/master
updating to origin/master
2 parents af1925b + 37fbd8c commit f9bd51a

File tree

126 files changed

+3170
-1215
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

126 files changed

+3170
-1215
lines changed

.github/FUNDING.yml

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
# These are supported funding model platforms
2+
3+
github: # Replace with up to 4 GitHub Sponsors-enabled usernames e.g., [user1, user2]
4+
patreon: # Replace with a single Patreon username
5+
open_collective: # Replace with a single Open Collective username
6+
ko_fi: # Replace with a single Ko-fi username
7+
tidelift: # Replace with a single Tidelift platform-name/package-name e.g., npm/babel
8+
community_bridge: # Replace with a single Community Bridge project-name e.g., cloud-foundry
9+
liberapay: TheAlgorithms
10+
issuehunt: # Replace with a single IssueHunt username
11+
otechie: # Replace with a single Otechie username
12+
custom: ['http://paypal.me/TheAlgorithms/1000', 'https://donorbox.org/thealgorithms']

.lgtm.yml

Lines changed: 0 additions & 12 deletions
This file was deleted.

.travis.yml

Lines changed: 32 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -1,26 +1,36 @@
11
language: python
2+
dist: xenial # required for Python >= 3.7
3+
python: 3.7
24
cache: pip
3-
python:
4-
- 2.7
5-
- 3.6
6-
#- nightly
7-
#- pypy
8-
#- pypy3
9-
matrix:
10-
allow_failures:
11-
- python: nightly
12-
- python: pypy
13-
- python: pypy3
14-
install:
15-
#- pip install -r requirements.txt
16-
- pip install flake8 # pytest # add another testing frameworks later
5+
before_install: pip install --upgrade pip setuptools
6+
install: pip install -r requirements.txt
177
before_script:
18-
# stop the build if there are Python syntax errors or undefined names
19-
- flake8 . --count --select=E9,F63,F72,F82 --show-source --statistics
20-
# exit-zero treats all errors as warnings. The GitHub editor is 127 chars wide
21-
- flake8 . --count --exit-zero --max-complexity=10 --max-line-length=127 --statistics
8+
- black --check . || true
9+
- flake8 . --count --select=E9,F63,F7,F82 --show-source --statistics
2210
script:
23-
- true # pytest --capture=sys # add other tests here
24-
notifications:
25-
on_success: change
26-
on_failure: change # `always` will be the setting once code changes slow down
11+
- mypy --ignore-missing-imports .
12+
#- IGNORE="data_structures,file_transfer_protocol,graphs,machine_learning,maths,neural_network,project_euler"
13+
#- pytest . --doctest-modules --ignore=${IGNORE}
14+
- pytest --doctest-modules
15+
arithmetic_analysis
16+
backtracking
17+
boolean_algebra
18+
ciphers
19+
compression
20+
conversions
21+
digital_image_processing
22+
divide_and_conquer
23+
dynamic_programming
24+
hashes
25+
linear_algebra_python
26+
matrix
27+
networking_flow
28+
other
29+
searches
30+
sorts
31+
strings
32+
traversals
33+
34+
after_success:
35+
- python ./~script.py
36+
- cat DIRECTORY.md

CONTRIBUTING.md

Lines changed: 29 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -10,10 +10,10 @@ Welcome to [TheAlgorithms/Python](https://github.com/TheAlgorithms/Python)! Befo
1010

1111
We are very happy that you consider implementing algorithms and data structure for others! This repository is referenced and used by learners from all over the globe. Being one of our contributors, you agree and confirm that:
1212

13-
- your did your work - no plagiarism allowed
13+
- You did your work - no plagiarism allowed
1414
- Any plagiarized work will not be merged.
15-
- your work will be distributed under [MIT License](License) once your pull request is merged
16-
- you submitted work fulfils or mostly fulfils our styles and standards
15+
- Your work will be distributed under [MIT License](License) once your pull request is merged
16+
- You submitted work fulfils or mostly fulfils our styles and standards
1717

1818
**New implementation** is welcome! For example, new solutions for a problem, different representations for a graph data structure or algorithm designs with different complexity.
1919

@@ -28,6 +28,13 @@ We appreciate any contribution, from fixing a grammar mistake in a comment to im
2828
We want your work to be readable by others; therefore, we encourage you to note the following:
2929

3030
- Please write in Python 3.x.
31+
- Please consider running [__python/black__](https://github.com/python/black) on your Python file(s) before submitting your pull request. This is not a requirement but it does make your code more readable. There are other code formatters (autopep8, yapf) but the __black__ style is now the recommendation of the Python core team. To use it,
32+
```bash
33+
pip3 install black # only required the first time
34+
black my-submission.py
35+
```
36+
37+
- All submissions will need to pass the test __flake8 . --count --select=E9,F63,F7,F82 --show-source --statistics__ before they will be accepted so if possible, try this test locally on your Python file(s) before submitting your pull request.
3138

3239
- If you know [PEP 8](https://www.python.org/dev/peps/pep-0008/) already, you will have no problem in coding style, though we do not follow it strictly. Read the remaining section and have fun coding!
3340

@@ -72,13 +79,19 @@ We want your work to be readable by others; therefore, we encourage you to note
7279

7380
- Write tests to illustrate your work.
7481

75-
The following "testing" approaches are not encouraged:
82+
The following "testing" approaches are **not** encouraged:
7683

7784
```python
7885
input('Enter your input:')
7986
# Or even worse...
8087
input = eval(raw_input("Enter your input: "))
8188
```
89+
90+
However, if your code uses __input()__ then we encourage you to gracefully deal with leading and trailing whitespace in user input by adding __.strip()__ to the end as in:
91+
92+
```python
93+
starting_value = int(input("Please enter a starting value: ").strip())
94+
```
8295

8396
Please write down your test case, like the following:
8497

@@ -92,31 +105,33 @@ We want your work to be readable by others; therefore, we encourage you to note
92105
print("1 + 2 = ", sumab(1,2)) # 1+2 = 3
93106
print("6 + 4 = ", sumab(6,4)) # 6+4 = 10
94107
```
108+
109+
Better yet, if you know how to write [__doctests__](https://docs.python.org/3/library/doctest.html), please consider adding them.
95110

96-
- Avoid importing external libraries for basic algorithms. Use those libraries for complicated algorithms.
111+
- Avoid importing external libraries for basic algorithms. Only use those libraries for complicated algorithms.
97112

98113
#### Other Standard While Submitting Your Work
99114

100-
- File extension for code should be `.py`.
115+
- File extension for code should be `.py`. Jupiter notebook files are acceptable in machine learning algorithms.
101116

102-
- Please file your work to let others use it in the future. Here are the examples that are acceptable:
103-
104-
- Camel cases
105-
- `-` Hyphenated names
106-
- `_` Underscore-separated names
117+
- Strictly use snake case (underscore separated) in your file name, as it will be easy to parse in future using scripts.
107118

108119
If possible, follow the standard *within* the folder you are submitting to.
109120

110121
- If you have modified/added code work, make sure the code compiles before submitting.
111122

112-
- If you have modified/added documentation work, make sure your language is concise and contains no grammar mistake.
123+
- If you have modified/added documentation work, ensure your language is concise and contains no grammar errors.
124+
125+
- Do not update the README.md or DIRECTORY.md file which will be periodically autogenerated by our Travis CI processes.
113126

114127
- Add a corresponding explanation to [Algorithms-Explanation](https://github.com/TheAlgorithms/Algorithms-Explanation) (Optional but recommended).
115128

129+
- All submissions will be tested with [__mypy__](http://www.mypy-lang.org) so we encourage to add [__Python type hints__](https://docs.python.org/3/library/typing.html) where it makes sense to do so.
130+
116131
- Most importantly,
117132

118-
- **be consistent with this guidelines while submitting.**
119-
- **join** [Gitter](https://gitter.im/TheAlgorithms) **now!**
133+
- **Be consistent in the use of these guidelines when submitting.**
134+
- **Join** [Gitter](https://gitter.im/TheAlgorithms) **now!**
120135
- Happy coding!
121136

122137

0 commit comments

Comments
 (0)