Commit Graph
59 Commits
Author SHA1 Message Date
Dhruv Manilawala 24e7edbe5b Remove myself from CODEOWNERS (#9325) 2023-10-01 23:18:16 +02:00
Dhruv Manilawala 9e0c357a57 chore: additional Project Euler solution hash (#8593) 2023-04-01 08:29:26 +02:00
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
Dhruv Manilawala 3bf86b91e7 fix: no implicit optional (#7984) 2022-11-15 14:55:14 +01:00
Dhruv Manilawalaandgithub-actions 70b60dc323 chore: remove inactive user from CODEOWNERS (#7205)
* chore: remove inactive user from CODEOWNERS

* updating DIRECTORY.md

Co-authored-by: github-actions <${GITHUB_ACTOR}@users.noreply.github.com>
2022-10-15 08:37:59 +02:00
Dhruv ManilawalaandChristian Clauss e40c7b4bf1 refactor: move flake8 config (#7167)
* refactor: move flake8 config

* Update .pre-commit-config.yaml

Co-authored-by: Christian Clauss <cclauss@me.com>
2022-10-14 16:34:44 +02:00
Dhruv Manilawala c9f1d09e1a fix: GitHub requires .yml extension (#6542)
* fix: GitHub requires `.yml` extension

Ref: https://docs.github.com/en/communities/using-templates-to-encourage-useful-issues-and-pull-requests/configuring-issue-templates-for-your-repository#configuring-the-template-chooser

* fix: remove newlines from multiline string

* fix: use textarea for dependencies list input
2022-10-02 18:51:53 +05:30
Dhruv Manilawala cabd8c6382 feat: basic issue forms (#6533) 2022-10-02 14:19:30 +02:00
Dhruv Manilawala 38dfcd28b5 fix: test failures (#6250)
1. Incorrect function was being imported from the module
2. Testing for exception was not done correctly
2022-07-14 12:54:24 +05:30
Dhruv Manilawala daeb6a7e08 fix(action): delete approve workflow as it does not work (#4453) 2021-06-10 22:48:40 +05:30
Dhruv Manilawala 32e9072627 fix(action): testing and fixing errors (#4446)
* fix(action): testing and fixing errors

* fix: testing if all is a valid entry for workflows

* fix: more events to trigger workflow tests

* fix: double quotes -> single quotes

* fix: add workflows name to the list

* revert: remove added events

This reverts commit 3daeeb2ba3
2021-05-21 19:25:59 +05:30
Dhruv Manilawalaandgithub-actions ac29f70755 fix(action): correct indentation for types key (#4445)
* fix(action): correct indentation for types key

* updating DIRECTORY.md

* refactor: add quotes around name key

Co-authored-by: github-actions <${GITHUB_ACTOR}@users.noreply.github.com>
2021-05-21 19:03:56 +05:30
Dhruv Manilawala 92836d57f6 feat: action to approve workflow run (#4444) 2021-05-21 14:31:56 +05:30
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
Dhruv ManilawalaandChristian Clauss c49fa088a0 feat: Add mypy configuration file (#4315)
* feat: Add mypy config file

* refactor: Remove mypy options from build workflow

* Remove linear_algebra

Co-authored-by: Christian Clauss <cclauss@me.com>
2021-04-06 12:54:26 +02:00
Dhruv Manilawala 8c2986026b fix(mypy): type annotations for linear algebra algorithms (#4317)
* fix(mypy): type annotations for linear algebra algorithms

* refactor: remove linear algebra directory from mypy exclude
2021-04-05 15:37:38 +02:00
Dhruv Manilawala 20c7518028 fix(mypy): type annotations for conversions algorithms (#4314)
* fix(mypy): type annotations for conversions algorithms

* refactor(CI): include conversions algorithms for mypy tests
2021-04-04 15:25:49 +02:00
Dhruv Manilawala 60895366c0 fix(mypy): type annotations for cipher algorithms (#4306)
* fix(mypy): type annotations for cipher algorithms

* Update mypy workflow to include cipher directory

* fix: mypy errors in hill_cipher.py

* fix build errors
2021-04-04 07:22:12 +02:00
Dhruv ManilawalaandChristian Clauss 14bcb580d5 fix(mypy): Fix annotations for 13 cipher algorithms (#4278)
* Initial fix for mypy errors in some cipher algorithms

* fix(mypy): Update type hints

* fix(mypy): Update type hints for enigma_machine2.py

* Update as per the suggestion

Co-authored-by: Christian Clauss <cclauss@me.com>

Co-authored-by: Christian Clauss <cclauss@me.com>
2021-03-22 07:59:51 +01:00
Dhruv Manilawala 8f47d9f807 Fix type annotations for bit manipulation algorithms (#4056) 2020-12-24 18:16:44 +05:30
Dhruv Manilawala f3ba9b6c50 [mypy] Add/fix type annotations for backtracking algorithms (#4055)
* Fix mypy errors for backtracking algorithms

* Fix CI failure
2020-12-24 18:16:21 +05:30
Dhruv Manilawala ad5108d6a4 Fix mypy errors for arithmetic analysis algorithms (#4053) 2020-12-23 10:52:43 +01:00
Dhruv Manilawalaandgithub-actions f8b2c43fda Fix pre-commit error on master (#3992)
* Update pigeon_sort.py

* updating DIRECTORY.md

* Add type hints and return annotation

Co-authored-by: github-actions <${GITHUB_ACTOR}@users.noreply.github.com>
2020-11-30 21:03:29 +05:30
Dhruv Manilawala ba6310b647 Validate only submitted Project Euler solution (#3977)
* Update validate solution script to fetch only submitted solution
* Update workflow file with the updated PE script
* Fix: do not fetch `validate_solutions.py` script
* Update script to use the requests package for API calls
* Fix: install requests module
* Pytest ignore scripts/ directory
2020-11-29 23:11:09 +05:30
Dhruv Manilawala c5fb0a9504 Cleaned up knapsack and images directory (#3972) 2020-11-27 10:57:12 +01:00
Dhruv Manilawalaandgithub-actions 5eb5483d65 Update stalebot to take 5 actions per hour (#3922)
* Update stalebot to take 5 actions per hour

* updating DIRECTORY.md

Co-authored-by: github-actions <${GITHUB_ACTOR}@users.noreply.github.com>
2020-11-25 13:23:49 +05:30
Dhruv Manilawala f2c1f98a23 Remove workflow file, task checked by the bot (#3917) 2020-11-21 16:12:00 +05:30
Dhruv Manilawala 06f01c0eeb Remove stale action workflow file (#3915) 2020-11-21 09:04:49 +05:30
Dhruv Manilawala fe0f2f32e7 Try the stale bot instead of stale action (#3906)
* Try the stale bot instead

* Add config file for the stale bot
2020-11-20 11:41:22 +05:30
Dhruv Manilawala 2885a8cd99 Run latest stale action (#3904) 2020-11-19 20:09:31 +01:00
Dhruv Manilawala fe6885926f Update related to the change in CI testing (#3903)
* Update README badge for GitHub CI

* Run GitHub CI everyday as was done in Travis
2020-11-19 22:34:57 +05:30
Dhruv ManilawalaandChristian Clauss b9b7fffcc2 Move CI tests from Travis to GitHub (#3889)
* Add initial support for moving tests to GitHub

* Add setup Python step in the workflow

* Remove Travis CI config file

* Fix GitHub action file for build to trigger on PR

* Use Python 3.8 as tensorflow is not yet supported

* Fix ciphers.hill_cipher doctest error

* Fix: instagram crawler tests failing on GitHub actions

* Fix floating point errors in doctest

* Small change to test cache

* Apply suggestions from code review

Co-authored-by: Christian Clauss <cclauss@me.com>

* Update instagram_crawler.py

Co-authored-by: Christian Clauss <cclauss@me.com>
2020-11-19 22:01:31 +05:30
Dhruv Manilawala 3d7704f0bf Add config details for the stale action (#3870) 2020-11-08 21:31:14 +05:30
Dhruv Manilawala fdba34f704 Cache pre-commit workflow (#3863) 2020-11-05 12:06:59 +01:00
Dhruv Manilawala b97529dd88 Move validate_solutions and add durations flag to pytest.ini (#3704)
* Move PE validate_solutions to scripts/ directory

* Update pytest.ini file with durations settings

* Remove codespell and autoblack workflow file

* Dependent changes to test config files

* Update pytest.ini
2020-10-24 19:07:33 +05:30
Dhruv 5cb41e7820 Create GitHub action only for Project Euler (#3378)
* Add GitHub action for Project Euler only

* Add second job for Project Euler

* Remove Project Euler jobs from Travis CI

* Fix typo for actions/setup-python

* Rename the workflow file

* Change name of file in workflow

* Remove comments from Travis config file
2020-10-17 08:23:17 +05:30
Dhruv 44254cf112 Rename Project Euler directories and other dependent changes (#3300)
* Rename all Project Euler directories:

Reason:
The change was done to maintain consistency throughout the directory
and to keep all directories in sorted order.

Due to the above change, some config files had to be modified:
'problem_22` -> `problem_022`

* Update scripts to pad zeroes in PE directories
2020-10-15 12:43:28 +05:30
DhruvandJohn Law 2d7e08ef83 Update README.md for Project Euler (#3256)
* Update README.md for Project Euler

* Add link to solution template

* Add newlines for better separation

* Add __name__ == __main__ block in template

* Apply suggestions from code review

Co-authored-by: John Law <johnlaw.po@gmail.com>

* Improve introduction part

Co-authored-by: John Law <johnlaw.po@gmail.com>
2020-10-15 09:47:19 +05:30
Dhruvandgithub-actions 23ab159f30 Fix errors in Quantum algorithm (#3273)
* Fix pre-commit errors in Quantum algorithm

* updating DIRECTORY.md

* Fix doctest

* Update not_gate.py

Co-authored-by: github-actions <${GITHUB_ACTOR}@users.noreply.github.com>
2020-10-14 07:58:52 +02:00
Dhruvandgithub-actions 34d63d5155 Fix Travis CI slow build on Project Euler Solution job (#3262)
* Fix Travis CI long run for validate_solutions

* updating DIRECTORY.md

Co-authored-by: github-actions <${GITHUB_ACTOR}@users.noreply.github.com>
2020-10-13 22:43:40 +05:30
Dhruv 29b32d3553 Improve validate solutions script & fix pre-commit error (#3253)
* Trying to time every solution

* Proposal 2 for timing PE solutions:

- Use pytest fixture along with --capture=no flag to print out the
  top DURATIONS slowest solution at the end of the test sessions.
- Remove the print part and try ... except ... block from the test
  function.

* Proposal 3 for timing PE solutions:

Completely changed the way I was performing the tests. Instead of
parametrizing the problem numbers and expected output, I will
parametrize the solution file path.

Steps:
- Collect all the solution file paths
- Convert the paths into a Python module
- Call solution on the module
- Assert the answer with the expected results

For assertion, it was needed to convert the JSON list object to
Python dictionary object which required changing the JSON file itself.

* Add type hints for variables

* Fix whitespace in single_qubit_measure
2020-10-13 15:41:12 +05:30
Dhruv 69f9283825 Start running validate_solutions script for Travis CI (#3215)
* Removed print error_msgs at the end of test:

This was done only to reduce the message clutter produced by 60
failing tests. As that is fixed, we can produce the traceback in
short form and allow pytest to print the captured error message
output at the end of test.

* Start validate_solutions script for Travis CI

I am separating out the solution testing and doctest as validating
the solutions for the current number of solutions present is
taking 2 minutes to run.
2020-10-12 11:29:39 +05:30
Dhruv 501a2ff430 [Project Euler] Fix code style for multiple problems (#3094)
* Fix code style for Project Euler problems:

- 13, 17, 21
- Default args
- Type hints
- File path

* Fix code style for multiple problems

* Made suggested changes
2020-10-10 21:23:17 +05:30
Dhruv c961d5541f Add CODEOWNERS file to TheAlgorithms/Python (#3147)
* Add CODEOWNERS file

* Commented out the non-assigned directory
2020-10-10 16:38:45 +02:00
Dhruv 719c5562d9 Add default args and type hints for problem 7 (#2973)
- Add default argument values
- Add type hints
- Change one letter variable names to a more descriptive one
- Add doctest for `solution()`
2020-10-08 07:57:47 +02:00
Dhruv 11a5afd8a1 Add type hints and default args for problem 20 (#2962)
- Improved variable names
- Added type hints
- Added default argument values for validate_solutions script
2020-10-07 17:59:55 +08:00
Dhruv ddf83ec886 Add default arguments for Project Euler problem 6 (#2957)
- Add default arguments to solution function
- Add link to Project Euler problem 6
- Add doctest for testing `solution()`
- Removed test_solutions.py as it is redundant
2020-10-07 10:17:43 +05:30
Dhruv b934da4516 Fix pre-commit error in GitHub action file (#2765) 2020-10-04 21:16:13 +05:30
Dhruv 7a502708e0 Add badges for code style and pre-commit in README.md (#2516)
* Add badges for code style and pre-commit

* Update badge style to flat-square

* Update Gitpod logo style to flat-square
2020-09-30 16:40:20 +02:00
DhruvandChristian Clauss acaeb22bbd Add GitHub action for pre-commit (#2515)
* Add GitHub action file for pre-commit

* Fix errors exposed by pre-commit hook:

- Remove executable bit from files without shebang. I checked those
  file and it was not needed.
- Fix with black

* Apply suggestions from code review

Co-authored-by: Christian Clauss <cclauss@me.com>

Co-authored-by: Christian Clauss <cclauss@me.com>
2020-09-30 15:23:34 +02:00
Dhruv ae65f55de3 Add pre-commit hook for TheAlgorithms/Python (#2511)
* Add pre-commit basic config file

* Add pre-commit to requirements.txt

* Small tweaks and use stable for black

* Fix isort section in pre-commit-config file

* Fix errors and EOF only for Python files
2020-09-30 10:39:14 +02:00
Dhruv 0a42ae9095 Fix all errors mentioned in pre-commit run (#2512)
* Fix all errors mentioned in pre-commit run:

- Fix end of file
- Remove trailing whitespace
- Fix files with black
- Fix imports with isort

* Fix errors
2020-09-30 10:38:00 +02: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
Dhruv 48357cea5b Add __init__.py files in all the directories (#2503) 2020-09-28 19:42:36 +02:00
DhruvandChristian Clauss ceacfc6079 Add algorithm for testing Project Euler solutions (#2471)
* Add file for testing Project Euler solutions

* Remove the importlib import

* Update project_euler/solution_test.py

Co-authored-by: Christian Clauss <cclauss@me.com>

* Small tweaks to project_euler/solution_test.py

* Test Project Euler solutions through Travis

* Improved testing for Project Euler solutions:

- Renamed file so that it isn't picked up by pytest
- Fail fast on validating solutions through Travis CI

* Update validate_solutions.py

* Use namedtuple for input parameters and answer

- Remove logging
- Remove unnecessary checks for PROJECT_EULER_PATH as Travis CI
  picks up the same path

* Fix flake8 errors: line too long

* Small tweaks to validate_solutions.py

* Add all answers & back to using dictionary

* Using pytest for testing Project Euler solutions

- As we want to fail fast on testing solutions, we need to test using
  this script first before we use tests written by the author.
- As pytest stops testing as soon as it receives a traceback, we need to
  use pytest-subtests to tell pytest to test all the iterations for the
  function with given parameters.

* Print error messages in oneline format

* Separated answers into a separate file:

- Add custom print function to print all the error messages at the
  end of all the tests
- Let Travis skip if this failed

Co-authored-by: Christian Clauss <cclauss@me.com>
2020-09-28 08:18:19 +02:00
Dhruv 187e8ccc95 Small fix (#2498) 2020-09-27 15:05:09 +02:00
Dhruv 08eb1efafe Add solution() for problem 54 of Project Euler (#2472)
* Add solution() for problem 54 of Project Euler

* Add type hints for solution() function
2020-09-24 15:16:55 +02:00
DhruvandChristian Clauss 6e6a49d19f Config Travis CI for two jobs (#2463)
* Testing Travis CI configuration for project Euler

* Fix: Installing mypy and pytest-cov for testing

* Remove unnecessary checks for project_euler job

* Removing branches section

* Update .travis.yml

* Update .travis.yml

* Update .travis.yml

* Update .travis.yml

Co-authored-by: Christian Clauss <cclauss@me.com>
2020-09-23 13:24:32 +02:00
Dhruvandgithub-actions ea0759dbaa Create problem_54 in project Euler (#2451)
* Add solution and test files for project euler 54

* Update sol1.py

* updating DIRECTORY.md

* Fix: use proper path to open files

* Commit suggestions:

- Use list comprehension instead of map
- Sort imports using isort

* Changes made as suggested (simplified a lot):

- List and set comprehension instead of itemgetter
- Using enumerate as it's easy to read
- Divided into list of card values and set of card suit as set will
  remove all the duplicate values. So, no need for double indexing.
- Add test for testing multiple calls to five_high_straight function

* Add suggestions and simplified:

- Split generate_random_hands function into two:
  - First will generate a random hand
  - Second, which will be called, will return a generator object

Co-authored-by: github-actions <${GITHUB_ACTOR}@users.noreply.github.com>
2020-09-20 13:52:13 +02:00