Christian Clauss
4b79d771cd
Add more ruff rules ( #8767 )
...
* Add more ruff rules
* Add more ruff rules
* pre-commit: Update ruff v0.0.269 -> v0.0.270
* Apply suggestions from code review
* Fix doctest
* Fix doctest (ignore whitespace)
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
---------
Co-authored-by: Dhruv Manilawala <dhruvmanila@gmail.com>
Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
2023-05-26 09:34:17 +02:00
amirsoroush
63710883c8
Remove extra len
calls in doubly-linked-list's methods ( #8600 )
2023-04-01 17:53:21 +05:30
amirsoroush
e4d90e2d5b
change space complexity of linked list's __len__ from O(n) to O(1) ( #8183 )
2023-04-01 08:26:43 +02:00
Christian Clauss
64543faa98
Make some ruff fixes ( #8154 )
...
* Make some ruff fixes
* Undo manual fix
* Undo manual fix
* Updates from ruff=0.0.251
2023-03-01 17:23:33 +01:00
Christian Clauss
c909da9b08
pre-commit: Upgrade psf/black for stable style 2023 ( #8110 )
...
* pre-commit: Upgrade psf/black for stable style 2023
Updating https://github.com/psf/black ... updating 22.12.0 -> 23.1.0 for their `2023 stable style`.
* https://github.com/psf/black/blob/main/CHANGES.md#2310
> This is the first [psf/black] release of 2023, and following our stability policy, it comes with a number of improvements to our stable style…
Also, add https://github.com/tox-dev/pyproject-fmt and https://github.com/abravalheri/validate-pyproject to pre-commit.
I only modified `.pre-commit-config.yaml` and all other files were modified by pre-commit.ci and psf/black.
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
---------
Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
2023-02-01 18:44:54 +05:30
Dhruv Manilawala
8bfd1c844b
fix: mypy 0.991 issues ( #7988 )
...
* fix: mypy 0.991 issues
* fix: invalid condition for base case
2022-11-15 18:29:14 +01:00
Caeden Perelli-Harris
daa1c7529a
Raise error not string ( #7945 )
...
* ci: Add `B023` to `.flake8` ignores
* refactor: Return `bool`/raise Exception
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* revert: Remove previous branch commit
* Update data_structures/binary_tree/segment_tree_other.py
Co-authored-by: Christian Clauss <cclauss@me.com>
* feat: Apply `__repr__` changes
* chore: Fix failing tests
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* Update data_structures/binary_tree/segment_tree_other.py
Co-authored-by: Christian Clauss <cclauss@me.com>
* test: Fix doctests
* random.choice(population_score[:N_SELECTED])[0]
* Update basic_string.py
Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
Co-authored-by: Christian Clauss <cclauss@me.com>
2022-11-06 15:54:44 +01:00
Christian Clauss
45b3383c39
Flake8: Drop ignore of issue A003 ( #7949 )
...
* Flake8: Drop ignore of issue A003
* updating DIRECTORY.md
Co-authored-by: github-actions <${GITHUB_ACTOR}@users.noreply.github.com>
2022-11-02 19:20:45 +01:00
Christian Clauss
19bff003aa
Adopt Python >= 3.8 assignment expressions using auto-walrus ( #7737 )
...
* Adopt Python >= 3.8 assignment expressions using auto-walrus
* updating DIRECTORY.md
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
Co-authored-by: github-actions <${GITHUB_ACTOR}@users.noreply.github.com>
Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
2022-10-28 15:54:54 +02:00
Caeden Perelli-Harris
61eedc16c3
Remove useless code in doctests ( #7733 )
...
* refactor: Fix matrix display deprecation
* refactor: Remove useless `print` and `pass` statements
* revert: Replace broken doctests
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* revert: Fix failing doctests
* chore: Satisfy pre-commit
Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
2022-10-27 22:52:00 +02:00
Caeden Perelli-Harris
9bba42eca8
refactor: Indent ... for visual purposes ( #7744 )
2022-10-27 19:42:30 +02:00
CenTdemeern1
04698538d8
Misc fixes across multiple algorithms ( #6912 )
...
Source: Snyk code quality
Add scikit-fuzzy to requirements
Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
Co-authored-by: Dhruv Manilawala <dhruvmanila@gmail.com>
2022-10-16 10:55:38 +05:30
Caeden
a652905b60
Add Flake8 comprehensions to pre-commit ( #7235 )
...
* ci(pre-commit): Add ``flake8-comprehensions`` to ``pre-commit`` (#7233 )
* refactor: Fix ``flake8-comprehensions`` errors
* fix: Replace `map` with generator (#7233 )
* fix: Cast `range` objects to `list`
2022-10-15 19:29:42 +02:00
Caeden
4d0c830d2c
Add flake8 pluin flake8 bugbear to pre-commit ( #7132 )
...
* ci(pre-commit): Add ``flake8-builtins`` additional dependency to ``pre-commit`` (#7104 )
* refactor: Fix ``flake8-builtins`` (#7104 )
* fix(lru_cache): Fix naming conventions in docstrings (#7104 )
* ci(pre-commit): Order additional dependencies alphabetically (#7104 )
* fix(lfu_cache): Correct function name in docstring (#7104 )
* Update strings/snake_case_to_camel_pascal_case.py
Co-authored-by: Christian Clauss <cclauss@me.com>
* Update data_structures/stacks/next_greater_element.py
Co-authored-by: Christian Clauss <cclauss@me.com>
* Update digital_image_processing/index_calculation.py
Co-authored-by: Christian Clauss <cclauss@me.com>
* Update graphs/prim.py
Co-authored-by: Christian Clauss <cclauss@me.com>
* Update hashes/djb2.py
Co-authored-by: Christian Clauss <cclauss@me.com>
* refactor: Rename `_builtin` to `builtin_` ( #7104 )
* fix: Rename all instances (#7104 )
* refactor: Update variable names (#7104 )
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* ci: Create ``tox.ini`` and ignore ``A003`` (#7123 )
* revert: Remove function name changes (#7104 )
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* Rename tox.ini to .flake8
* Update data_structures/heap/heap.py
Co-authored-by: Dhruv Manilawala <dhruvmanila@gmail.com>
* refactor: Rename `next_` to `next_item` (#7104 )
* ci(pre-commit): Add `flake8` plugin `flake8-bugbear` (#7127 )
* refactor: Follow `flake8-bugbear` plugin (#7127 )
* fix: Correct `knapsack` code (#7127 )
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
Co-authored-by: Christian Clauss <cclauss@me.com>
Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
Co-authored-by: Dhruv Manilawala <dhruvmanila@gmail.com>
2022-10-13 18:03:06 +02:00
Caeden
d5a9f649b8
Add flake8-builtins to pre-commit and fix errors ( #7105 )
...
Ignore `A003`
Co-authored-by: Christian Clauss <cclauss@me.com>
Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
Co-authored-by: Dhruv Manilawala <dhruvmanila@gmail.com>
2022-10-13 19:53:59 +05:30
Christian Clauss
b75a7c77f8
pre-commit autoupdate: pyupgrade v2.34.0 -> v2.37.0 ( #6245 )
...
* pre-commit autoupdate: pyupgrade v2.34.0 -> v2.37.0
* pre-commit run --all-files
2022-07-11 10:19:52 +02:00
Christian Clauss
1ae5abfc3c
Replace typing.optional with new annotations syntax ( #5829 )
...
* Replace typing.optional with new annotations syntax
* updating DIRECTORY.md
Co-authored-by: github-actions <${GITHUB_ACTOR}@users.noreply.github.com>
2021-11-17 04:43:02 +01:00
Christian Clauss
477cc3fe59
Add pyupgrade to pre-commit ( #5638 )
...
* Add pyupgrade to pre-commit
* Remove unused imports
* updating DIRECTORY.md
Co-authored-by: github-actions <${GITHUB_ACTOR}@users.noreply.github.com>
2021-10-28 16:45:59 +02:00
Sherman Hui
9153db2d27
[mypy] fix: fix mypy error in singly_linked_list.py ( #5517 )
...
The list comprehension shortcut was implicitly expecting a return
value causing a mypy error since `insert_tail` doesn't return a value
2021-10-22 11:39:18 +08:00
Immiel
2e2e1b656c
singly_linked_list: Added additional documentation, type hints and test cases ( #4988 )
...
This is a followup to https://github.com/TheAlgorithms/Python/pull/4973#issuecomment-933117382
As per given suggestion, I've added type hints to certain methods that don't have them. I have also added documentation and example doctests as a usage example for (most of) those that don't have them.
I have also added another test case following the previous test case's format. I noticed that the existing test case from previous pull request might be redundant with the ones I've made, so I decided to create a specific situation where the linked list would have to keep different kinds of data types for each node, in `test_singly_linked_list_2` test function.
Some minor changes in strings has been done to keep things consistent with other parts of the document. If it is undesirable, please let me know.
2021-10-20 16:08:39 +08:00
Parth Satodiya
d324f91fe7
Fix mypy errors for data_structures->linked_list directory files ( #4927 )
2021-10-07 23:18:23 +08:00
Christian Clauss
cecf43d648
Pyupgrade to Python 3.9 ( #4718 )
...
* Pyupgrade to Python 3.9
* updating DIRECTORY.md
Co-authored-by: github-actions <${GITHUB_ACTOR}@users.noreply.github.com>
2021-09-07 13:37:03 +02:00
Dhruv Manilawala
6f21f76696
fix(ci): Update pre-commit hooks and apply new black ( #4359 )
...
* fix(ci): Update pre-commit hooks and apply new black
* remove empty docstring
2021-04-26 07:46:50 +02:00
CarsonHam
61f3119467
Change occurrences of str.format to f-strings ( #4118 )
...
* f-string update rsa_cipher.py
* f-string update rsa_key_generator.py
* f-string update burrows_wheeler.py
* f-string update non_recursive_segment_tree.py
* f-string update red_black_tree.py
* f-string update deque_doubly.py
* f-string update climbing_stairs.py
* f-string update iterating_through_submasks.py
* f-string update knn_sklearn.py
* f-string update 3n_plus_1.py
* f-string update quadratic_equations_complex_numbers.py
* f-string update nth_fibonacci_using_matrix_exponentiation.py
* f-string update sherman_morrison.py
* f-string update levenshtein_distance.py
* fix lines that were too long
2021-02-23 11:23:49 +05:30
Maliha
860d4f547b
Create merge_two_lists.py that implements merging of two sorted linked lists ( #3874 )
...
* Create merge_two_lists.py that implements merging of two sorted linked lists
* Update merge_two_lists.py
Fixed formatting errors
* Fixed trailing whitespace
* Change name of function to def __str__()
* updating DIRECTORY.md
* Imported classes from singly_linked_list.py
* Update merge_two_lists.py
* Update merge_two_lists.py
Co-authored-by: github-actions <${GITHUB_ACTOR}@users.noreply.github.com>
Co-authored-by: Christian Clauss <cclauss@me.com>
2020-12-03 16:02:48 +01:00
arif599
9c6080a6fc
data_structures/linked_list: Add __str__() function ( #3961 )
...
* Adding __str__() function
* Removing white space
* Update data_structures/linked_list/__init__.py
Co-authored-by: xcodz-dot <71920621+xcodz-dot@users.noreply.github.com>
* Adding type hints
* Update __init__.py
* Update __init__.py
* Adding the changes requested
* Updating to fix pre-commit
* Updating __init__.py
* Updating __init__.py
Co-authored-by: xcodz-dot <71920621+xcodz-dot@users.noreply.github.com>
2020-11-28 11:20:18 +05:30
Du Yuanchao
5e642607c8
Update doubly linked list ( #3619 )
...
* update doubly linked list
* reformat code
add more test
* add test to iter
* updating DIRECTORY.md
Co-authored-by: github-actions <${GITHUB_ACTOR}@users.noreply.github.com>
2020-10-21 22:31:09 +08:00
Christian Clauss
9b95e4f662
Pyupgrade to python3.8 ( #3616 )
...
* Upgrade to Python 3.8 syntax
* updating DIRECTORY.md
Co-authored-by: github-actions <${GITHUB_ACTOR}@users.noreply.github.com>
2020-10-21 12:46:14 +02:00
Akash G Krishnan
c33b683193
New doubly linkedlist PR: pull/2573 ( #3380 )
...
https://github.com/TheAlgorithms/Python/pull/2573
the second implementation of the Doubly linked list
2020-10-16 15:13:45 +02:00
Sherman Hui
477b2c24b8
Hacktoberfest: Update Linked List - print_reverse
method ( #2792 )
...
* chore: update print_reverse helper method
Use a generator expression instead of slicing
`elements_list` to improve the space and time complexity
of `make_linked_list` to O(1) space and O(n) time
by avoiding the creation a shallow copy of `elements_list`.
* fix: add type checking and argument typing
Add argument typing to all methods in `print_reverse`
Add doctest to helper function `make_linked_list` and
basic edge case tests to `print_reverse`
* test: add `print_reverse` test
Fix doctest syntax and remove edge case tests that are covered
by typed arguments.
Add `print_reverse` test that expects the correct values are printed
out by adding a `test_print_reverse_output` helper function.
* format code
Co-authored-by: shellhub <shellhub.me@gmail.com>
2020-10-05 19:08:57 +08:00
Dhruv
9016fe192f
Fix imports for all namespace packages ( #2506 )
...
* Fix imports as they're namespace packages
* Fix import for scripts/validate_filenames.py
* Fix path in doctest
2020-09-28 23:41:04 +02:00
Du Yuanchao
7f48bb8c95
Updated circular_linked_list ( #2483 )
...
* Updated circular_linked_list
* fixup! Format Python code with psf/black push
* Update data_structures/linked_list/circular_linked_list.py
Co-authored-by: Christian Clauss <cclauss@me.com>
* updating DIRECTORY.md
* delete print_list()
* test is_empty()
* test is_empty return False
* fixup! Format Python code with psf/black push
* fixed indentation
* fixup! Format Python code with psf/black push
Co-authored-by: github-actions <${GITHUB_ACTOR}@users.noreply.github.com>
Co-authored-by: Christian Clauss <cclauss@me.com>
2020-09-26 22:57:09 +08:00
Du Yuanchao
b81fcef66b
Fixed linked list bug ( #2481 )
...
* * fixed __getitem__() function
* add test
* * updated doctests
* updated __setitem__() func
* fixup! Format Python code with psf/black push
Co-authored-by: github-actions <${GITHUB_ACTOR}@users.noreply.github.com>
2020-09-25 18:08:57 +02:00
Du Yuanchao
18f1dcd48a
Updated singly_linked_list ( #2477 )
...
* Updated singly_linked_list
* fixup! Format Python code with psf/black push
* undo __repr__
* updating DIRECTORY.md
* UNTESTED CHANGES: Add an .__iter__() method.
This will break tests, etc.
* fixup! Format Python code with psf/black push
* len(tuple(iter(self)))
* fixed __repr__()
* Update data_structures/linked_list/singly_linked_list.py
Co-authored-by: Christian Clauss <cclauss@me.com>
* Update data_structures/linked_list/singly_linked_list.py
Co-authored-by: Christian Clauss <cclauss@me.com>
* Update data_structures/linked_list/singly_linked_list.py
Co-authored-by: Christian Clauss <cclauss@me.com>
* Update data_structures/linked_list/singly_linked_list.py
Co-authored-by: Christian Clauss <cclauss@me.com>
* Update data_structures/linked_list/singly_linked_list.py
Co-authored-by: Christian Clauss <cclauss@me.com>
* Update data_structures/linked_list/singly_linked_list.py
Co-authored-by: Christian Clauss <cclauss@me.com>
* Update data_structures/linked_list/singly_linked_list.py
Co-authored-by: Christian Clauss <cclauss@me.com>
Co-authored-by: github-actions <${GITHUB_ACTOR}@users.noreply.github.com>
Co-authored-by: Christian Clauss <cclauss@me.com>
2020-09-25 16:09:29 +02:00
Christian Clauss
9200a2e543
from __future__ import annotations ( #2464 )
...
* from __future__ import annotations
* fixup! from __future__ import annotations
* fixup! from __future__ import annotations
* fixup! Format Python code with psf/black push
Co-authored-by: github-actions <${GITHUB_ACTOR}@users.noreply.github.com>
2020-09-23 13:30:13 +02:00
kanthuc
ecac7b0973
Contains loops.py add ( #2442 )
...
* added an algorithm which checks a linked list for loops and returns true if one is found
* added doctests and clarified meaning of loop
* Define Node.__iter__()
* Update and rename has_loop.py to has_duplicate_data.py
* Update has_duplicate_data.py
* Update has_duplicate_data.py
* Update and rename has_duplicate_data.py to has_loop.py
* Update has_loop.py
Co-authored-by: Christian Clauss <cclauss@me.com>
2020-09-18 22:53:50 +02:00
Du Yuanchao
4d0a8f2355
Optimized recursive_bubble_sort ( #2410 )
...
* optimized recursive_bubble_sort
* Fixed doctest error due whitespace
* reduce loop times for optimization
* fixup! Format Python code with psf/black push
Co-authored-by: github-actions <${GITHUB_ACTOR}@users.noreply.github.com>
2020-09-10 10:31:26 +02:00
NEERAJ ADITYANANTH POLAMPALLI
3b1c4f72ce
changed a typo ( #2396 )
2020-09-05 13:09:18 +02:00
TheSuperNoob
b2e8672f02
Fix doubly linked list algorithm ( #2062 )
...
* Fix doubly linked list algorithm
* Fix bug with insert_at_tail method
Create __str__() method for Node class and LinkedList class
* Simplify __str__() of LinkedList
Returns empty string if there are no elements in the list
* Fix description
2020-08-02 23:55:18 +08:00
Christian Clauss
9316e7c014
Set the Python file maximum line length to 88 characters ( #2122 )
...
* flake8 --max-line-length=88
* fixup! Format Python code with psf/black push
Co-authored-by: github-actions <${GITHUB_ACTOR}@users.noreply.github.com>
2020-06-16 10:09:19 +02:00
Lakshmikanth2001
321b1425e3
data_structures/linked_list: Add __len__() function and tests ( #2047 )
...
* Update __init__.py
please add a function to get length of linked list
* Update __init__.py
* Update doubly_linked_list.py
all size function lo doubly linked list class
* prime number _better method
* comments
* Updated init.py 2
made it more pythonic
* updated length function
* commnet in linked_list construtor
* Update data_structures/linked_list/__init__.py
accepecting changes
Co-authored-by: Christian Clauss <cclauss@me.com>
* Update data_structures/linked_list/__init__.py
Co-authored-by: Christian Clauss <cclauss@me.com>
* Update __init__.py
* Revert changes to doubly_linked_list.py
* Revert changes to prime_check.py
Co-authored-by: Christian Clauss <cclauss@me.com>
2020-05-31 11:37:45 +02:00
Christian Clauss
1e8fe8efcf
circular_linked_list: Add more len() tests ( #2051 )
...
* circular_linked_list: Add more len() tests
* fixup! Format Python code with psf/black push
* prepend()
* updating DIRECTORY.md
* Fix decrementation of self.length
* Add empty list tests
Co-authored-by: github-actions <${GITHUB_ACTOR}@users.noreply.github.com>
2020-05-31 13:06:57 +05:30
Christian Clauss
1f8a21d727
Tighten up psf/black and flake8 ( #2024 )
...
* Tighten up psf/black and flake8
* Fix some tests
* Fix some E741
* Fix some E741
* updating DIRECTORY.md
Co-authored-by: github-actions <${GITHUB_ACTOR}@users.noreply.github.com>
2020-05-22 08:10:11 +02:00
Christian Clauss
0e6e5056b3
singly_linked_list.py: psf/black ( #2008 )
...
* singly_linked_list.py: psf/black
* updating DIRECTORY.md
* Update singly_linked_list.py
Co-authored-by: github-actions <${GITHUB_ACTOR}@users.noreply.github.com>
2020-05-19 13:54:25 +02:00
Christian Clauss
1c62bd10c1
Precision must be a nonnegative integer ( #2013 )
...
* Precision must be a nonnegative integer
* fixup! Format Python code with psf/black push
Co-authored-by: github-actions <${GITHUB_ACTOR}@users.noreply.github.com>
2020-05-19 15:46:20 +05:30
Akash
f9e0dd94d6
added __len__ function ( #1812 )
...
* added __len__ function
Added a function to count number of nodes in linked list
* Updated __len__ method
used snake_case instead of camel case
* Add tests to __len__()
Co-authored-by: Christian Clauss <cclauss@me.com>
2020-05-18 18:10:55 +02:00
Christian Clauss
6acd7fb5ce
Wrap lines that go beyond GitHub Editor ( #1925 )
...
* Wrap lines that go beyond GiHub Editor
* flake8 --count --select=E501 --max-line-length=127
* updating DIRECTORY.md
* Update strassen_matrix_multiplication.py
* fixup! Format Python code with psf/black push
* Update decision_tree.py
Co-authored-by: github-actions <${GITHUB_ACTOR}@users.noreply.github.com>
2020-05-01 23:36:35 +02:00
Christian Clauss
8bf380ce7d
README.md: sumab() --> sum_ab() for consistancy ( #1855 )
...
* README.md: sumab() --> sum_ab() for consistancy
consistency
* fixup! Format Python code with psf/black push
Co-authored-by: github-actions <${GITHUB_ACTOR}@users.noreply.github.com>
2020-04-12 17:18:30 +02:00
Sajied Shah Yousuf
c775baf55f
Added new Algorithm to find middle element of Linked List ( #1822 )
...
* Added new Algorithm to find middle element of Linked List
* Rename MiddleElementOfLinkedList.py to middle_element_of_linked_list.py
* changed "middle_element_of_linked_list.py" algorithm for taking input
* Update middle_element_of_linked_list.py
* Update middle_element_of_linked_list.py
* Update middle_element_of_linked_list.py
* Update middle_element_of_linked_list.py
* Update middle_element_of_linked_list.py
* Update middle_element_of_linked_list.py
* Update middle_element_of_linked_list.py
* Update middle_element_of_linked_list.py
* Update middle_element_of_linked_list.py
* Whack the trailing whitespace
Co-authored-by: Christian Clauss <cclauss@me.com>
2020-04-12 16:45:07 +02:00
Christian Clauss
a9f73e318c
Added SkipList ( #1781 )
...
* Added SkipList
* Add missing type hints and doctests
* Add missing doctest
* Tighten up doctest
Co-authored-by: Christian Clauss <cclauss@me.com>
2020-03-05 17:57:43 +01:00