Skip to content

Commit ffa269a

Browse files
authored
Merge pull request #1 from TheAlgorithms/master
update
2 parents 2333f93 + 22d2453 commit ffa269a

File tree

279 files changed

+13630
-3404
lines changed

Some content is hidden

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

279 files changed

+13630
-3404
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: 18 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -1,26 +1,22 @@
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,F401,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+
- scripts/validate_filenames.py # no uppercase and no spaces
12+
- mypy --ignore-missing-imports .
13+
- pytest . --doctest-modules
14+
--ignore=file_transfer_protocol/ftp_send_receive.py
15+
--ignore=file_transfer_protocol/ftp_client_server.py
16+
--ignore=machine_learning/linear_regression.py
17+
--ignore=machine_learning/perceptron.py
18+
--ignore=machine_learning/random_forest_classification/random_forest_classification.py
19+
--ignore=machine_learning/random_forest_regression/random_forest_regression.py
20+
after_success:
21+
- scripts/build_directory_md.py > DIRECTORY.md
22+
- cat DIRECTORY.md
File renamed without changes.

CONTRIBUTING.md

Lines changed: 26 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -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

@@ -62,7 +69,7 @@ We want your work to be readable by others; therefore, we encourage you to note
6269
"""
6370
This function sums two integers a and b
6471
Return: a + b
65-
"""
72+
"""
6673
return a + b
6774
```
6875

@@ -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,30 +105,32 @@ 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.**
133+
- **Be consistent in the use of these guidelines when submitting.**
119134
- **Join** [Gitter](https://gitter.im/TheAlgorithms) **now!**
120135
- Happy coding!
121136

0 commit comments

Comments
 (0)