array-api-strict 2.1.3__tar.gz → 2.3__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (83) hide show
  1. array_api_strict-2.3/.gitattributes +1 -0
  2. array_api_strict-2.3/.github/dependabot.yml +16 -0
  3. array_api_strict-2.3/.github/workflows/array-api-tests.yml +55 -0
  4. array_api_strict-2.3/.github/workflows/dependabot-auto-merge.yml +23 -0
  5. array_api_strict-2.3/.github/workflows/docs-build.yml +22 -0
  6. array_api_strict-2.3/.github/workflows/docs-deploy.yml +30 -0
  7. array_api_strict-2.3/.github/workflows/publish-package.yml +115 -0
  8. array_api_strict-2.3/.github/workflows/ruff.yml +19 -0
  9. array_api_strict-2.3/.github/workflows/tests.yml +33 -0
  10. array_api_strict-2.3/.gitignore +165 -0
  11. array_api_strict-2.3/CHANGELOG.md +249 -0
  12. array_api_strict-2.3/PKG-INFO +68 -0
  13. array_api_strict-2.3/array-api-tests-xfails.txt +8 -0
  14. {array_api_strict-2.1.3 → array_api_strict-2.3}/array_api_strict/__init__.py +18 -11
  15. {array_api_strict-2.1.3 → array_api_strict-2.3}/array_api_strict/_array_object.py +31 -19
  16. {array_api_strict-2.1.3 → array_api_strict-2.3}/array_api_strict/_creation_functions.py +2 -0
  17. {array_api_strict-2.1.3 → array_api_strict-2.3}/array_api_strict/_data_type_functions.py +34 -3
  18. {array_api_strict-2.1.3 → array_api_strict-2.3}/array_api_strict/_dtypes.py +1 -0
  19. array_api_strict-2.3/array_api_strict/_elementwise_functions.py +700 -0
  20. {array_api_strict-2.1.3 → array_api_strict-2.3}/array_api_strict/_fft.py +31 -5
  21. {array_api_strict-2.1.3 → array_api_strict-2.3}/array_api_strict/_flags.py +16 -9
  22. array_api_strict-2.3/array_api_strict/_helpers.py +37 -0
  23. {array_api_strict-2.1.3 → array_api_strict-2.3}/array_api_strict/_indexing_functions.py +12 -0
  24. array_api_strict-2.3/array_api_strict/_info.py +139 -0
  25. {array_api_strict-2.1.3 → array_api_strict-2.3}/array_api_strict/_linear_algebra_functions.py +1 -1
  26. {array_api_strict-2.1.3 → array_api_strict-2.3}/array_api_strict/_manipulation_functions.py +5 -0
  27. {array_api_strict-2.1.3 → array_api_strict-2.3}/array_api_strict/_searching_functions.py +44 -5
  28. {array_api_strict-2.1.3 → array_api_strict-2.3}/array_api_strict/_statistical_functions.py +42 -5
  29. {array_api_strict-2.1.3 → array_api_strict-2.3}/array_api_strict/_typing.py +4 -3
  30. array_api_strict-2.3/array_api_strict/_utility_functions.py +69 -0
  31. array_api_strict-2.3/array_api_strict/_version.py +21 -0
  32. {array_api_strict-2.1.3 → array_api_strict-2.3}/array_api_strict/tests/test_array_object.py +148 -72
  33. {array_api_strict-2.1.3 → array_api_strict-2.3}/array_api_strict/tests/test_creation_functions.py +7 -0
  34. {array_api_strict-2.1.3 → array_api_strict-2.3}/array_api_strict/tests/test_data_type_functions.py +24 -4
  35. {array_api_strict-2.1.3 → array_api_strict-2.3}/array_api_strict/tests/test_elementwise_functions.py +69 -5
  36. {array_api_strict-2.1.3 → array_api_strict-2.3}/array_api_strict/tests/test_flags.py +71 -14
  37. {array_api_strict-2.1.3 → array_api_strict-2.3}/array_api_strict/tests/test_manipulation_functions.py +1 -1
  38. array_api_strict-2.3/array_api_strict/tests/test_searching_functions.py +24 -0
  39. {array_api_strict-2.1.3 → array_api_strict-2.3}/array_api_strict/tests/test_statistical_functions.py +19 -1
  40. {array_api_strict-2.1.3 → array_api_strict-2.3}/array_api_strict/tests/test_validation.py +1 -1
  41. array_api_strict-2.3/array_api_strict.egg-info/PKG-INFO +68 -0
  42. {array_api_strict-2.1.3 → array_api_strict-2.3}/array_api_strict.egg-info/SOURCES.txt +30 -4
  43. array_api_strict-2.3/docs/Makefile +23 -0
  44. array_api_strict-2.3/docs/_static/custom.css +26 -0
  45. array_api_strict-2.3/docs/_static/favicon.png +0 -0
  46. array_api_strict-2.3/docs/api.rst +55 -0
  47. array_api_strict-2.3/docs/changelog.md +249 -0
  48. array_api_strict-2.3/docs/conf.py +85 -0
  49. array_api_strict-2.3/docs/index.md +201 -0
  50. array_api_strict-2.3/docs/make.bat +35 -0
  51. array_api_strict-2.3/docs/releasing.md +37 -0
  52. array_api_strict-2.3/docs/requirements.txt +7 -0
  53. array_api_strict-2.3/pyproject.toml +33 -0
  54. array_api_strict-2.3/pytest.ini +2 -0
  55. array_api_strict-2.3/requirements-dev.txt +3 -0
  56. array_api_strict-2.3/requirements.txt +1 -0
  57. array_api_strict-2.3/ruff.toml +7 -0
  58. array_api_strict-2.3/setup.cfg +4 -0
  59. array_api_strict-2.1.3/PKG-INFO +0 -37
  60. array_api_strict-2.1.3/array_api_strict/_elementwise_functions.py +0 -1006
  61. array_api_strict-2.1.3/array_api_strict/_info.py +0 -132
  62. array_api_strict-2.1.3/array_api_strict/_utility_functions.py +0 -39
  63. array_api_strict-2.1.3/array_api_strict/_version.py +0 -21
  64. array_api_strict-2.1.3/array_api_strict.egg-info/PKG-INFO +0 -37
  65. array_api_strict-2.1.3/setup.cfg +0 -12
  66. array_api_strict-2.1.3/setup.py +0 -29
  67. array_api_strict-2.1.3/versioneer.py +0 -2277
  68. {array_api_strict-2.1.3 → array_api_strict-2.3}/LICENSE +0 -0
  69. {array_api_strict-2.1.3 → array_api_strict-2.3}/README.md +0 -0
  70. {array_api_strict-2.1.3 → array_api_strict-2.3}/array_api_strict/_constants.py +0 -0
  71. {array_api_strict-2.1.3 → array_api_strict-2.3}/array_api_strict/_linalg.py +0 -0
  72. {array_api_strict-2.1.3 → array_api_strict-2.3}/array_api_strict/_set_functions.py +0 -0
  73. {array_api_strict-2.1.3 → array_api_strict-2.3}/array_api_strict/_sorting_functions.py +0 -0
  74. {array_api_strict-2.1.3 → array_api_strict-2.3}/array_api_strict/tests/__init__.py +0 -0
  75. {array_api_strict-2.1.3 → array_api_strict-2.3}/array_api_strict/tests/conftest.py +0 -0
  76. {array_api_strict-2.1.3 → array_api_strict-2.3}/array_api_strict/tests/test_device_support.py +0 -0
  77. {array_api_strict-2.1.3 → array_api_strict-2.3}/array_api_strict/tests/test_indexing_functions.py +0 -0
  78. {array_api_strict-2.1.3 → array_api_strict-2.3}/array_api_strict/tests/test_linalg.py +0 -0
  79. {array_api_strict-2.1.3 → array_api_strict-2.3}/array_api_strict/tests/test_set_functions.py +0 -0
  80. {array_api_strict-2.1.3 → array_api_strict-2.3}/array_api_strict/tests/test_sorting_functions.py +0 -0
  81. {array_api_strict-2.1.3 → array_api_strict-2.3}/array_api_strict.egg-info/dependency_links.txt +0 -0
  82. {array_api_strict-2.1.3 → array_api_strict-2.3}/array_api_strict.egg-info/requires.txt +0 -0
  83. {array_api_strict-2.1.3 → array_api_strict-2.3}/array_api_strict.egg-info/top_level.txt +0 -0
@@ -0,0 +1 @@
1
+ array_api_strict/_version.py export-subst
@@ -0,0 +1,16 @@
1
+ version: 2
2
+ updates:
3
+ # Maintain dependencies for GitHub Actions
4
+ - package-ecosystem: "github-actions"
5
+ directory: "/"
6
+ schedule:
7
+ interval: "weekly"
8
+ groups:
9
+ actions:
10
+ patterns:
11
+ - "*"
12
+ labels:
13
+ - "github-actions"
14
+ - "dependencies"
15
+ reviewers:
16
+ - "asmeurer"
@@ -0,0 +1,55 @@
1
+ name: Array API Tests
2
+
3
+ on: [push, pull_request]
4
+
5
+ env:
6
+ PYTEST_ARGS: "-v -rxXfE --ci --hypothesis-disable-deadline --max-examples 200"
7
+ API_VERSIONS: "2022.12 2023.12"
8
+
9
+ jobs:
10
+ array-api-tests:
11
+ runs-on: ubuntu-latest
12
+ strategy:
13
+ matrix:
14
+ python-version: ['3.9', '3.10', '3.11', '3.12']
15
+ numpy-version: ['1.26', 'dev']
16
+ exclude:
17
+ - python-version: '3.8'
18
+ numpy-version: 'dev'
19
+
20
+ steps:
21
+ - name: Checkout array-api-strict
22
+ uses: actions/checkout@v4
23
+ with:
24
+ path: array-api-strict
25
+ - name: Checkout array-api-tests
26
+ uses: actions/checkout@v4
27
+ with:
28
+ repository: data-apis/array-api-tests
29
+ submodules: 'true'
30
+ path: array-api-tests
31
+ - name: Set up Python ${{ matrix.python-version }}
32
+ uses: actions/setup-python@v5
33
+ with:
34
+ python-version: ${{ matrix.python-version }}
35
+ - name: Install Dependencies
36
+ run: |
37
+ python -m pip install --upgrade pip
38
+ if [[ "${{ matrix.numpy-version }}" == "dev" ]]; then
39
+ python -m pip install --pre --extra-index https://pypi.anaconda.org/scientific-python-nightly-wheels/simple numpy;
40
+ else
41
+ python -m pip install 'numpy>=1.26,<2.0';
42
+ fi
43
+ python -m pip install ${GITHUB_WORKSPACE}/array-api-strict
44
+ python -m pip install -r ${GITHUB_WORKSPACE}/array-api-tests/requirements.txt
45
+ python -m pip install hypothesis
46
+ - name: Run the array API testsuite
47
+ env:
48
+ ARRAY_API_TESTS_MODULE: array_api_strict
49
+ run: |
50
+ # Parameterizing this in the CI matrix is wasteful. Just do a loop here.
51
+ for ARRAY_API_STRICT_API_VERSION in ${API_VERSIONS}; do
52
+ export ARRAY_API_STRICT_API_VERSION
53
+ cd ${GITHUB_WORKSPACE}/array-api-tests
54
+ pytest array_api_tests/ --skips-file ${GITHUB_WORKSPACE}/array-api-strict/array-api-tests-xfails.txt ${PYTEST_ARGS}
55
+ done
@@ -0,0 +1,23 @@
1
+ # https://docs.github.com/en/code-security/dependabot/working-with-dependabot/automating-dependabot-with-github-actions#approve-a-pull-request
2
+ name: Dependabot auto-merge
3
+ on: pull_request
4
+
5
+ permissions:
6
+ contents: write
7
+ pull-requests: write
8
+
9
+ jobs:
10
+ dependabot:
11
+ runs-on: ubuntu-latest
12
+ if: github.actor == 'dependabot[bot]'
13
+ steps:
14
+ - name: Dependabot metadata
15
+ id: metadata
16
+ uses: dependabot/fetch-metadata@v2
17
+ with:
18
+ github-token: "${{ secrets.GITHUB_TOKEN }}"
19
+ - name: Enable auto-merge for Dependabot PRs
20
+ run: gh pr merge --auto --merge "$PR_URL"
21
+ env:
22
+ PR_URL: ${{github.event.pull_request.html_url}}
23
+ GH_TOKEN: ${{secrets.GITHUB_TOKEN}}
@@ -0,0 +1,22 @@
1
+ name: Docs Build
2
+
3
+ on: [push, pull_request]
4
+
5
+ jobs:
6
+ docs-build:
7
+ runs-on: ubuntu-latest
8
+ steps:
9
+ - uses: actions/checkout@v4
10
+ - uses: actions/setup-python@v5
11
+ - name: Install Dependencies
12
+ run: |
13
+ python -m pip install -r docs/requirements.txt
14
+ - name: Build Docs
15
+ run: |
16
+ cd docs
17
+ make html
18
+ - name: Upload Artifact
19
+ uses: actions/upload-artifact@v4
20
+ with:
21
+ name: docs-build
22
+ path: docs/_build/html
@@ -0,0 +1,30 @@
1
+ name: Docs Deploy
2
+
3
+ on:
4
+ push:
5
+ branches:
6
+ - main
7
+
8
+ jobs:
9
+ docs-deploy:
10
+ runs-on: ubuntu-latest
11
+ environment:
12
+ name: docs-deploy
13
+ steps:
14
+ - uses: actions/checkout@v4
15
+ - name: Download Artifact
16
+ uses: dawidd6/action-download-artifact@v8
17
+ with:
18
+ workflow: docs-build.yml
19
+ name: docs-build
20
+ path: docs/_build/html
21
+
22
+ # Note, the gh-pages deployment requires setting up a SSH deploy key.
23
+ # See
24
+ # https://github.com/JamesIves/github-pages-deploy-action/tree/dev#using-an-ssh-deploy-key-
25
+ - name: Deploy
26
+ uses: JamesIves/github-pages-deploy-action@v4
27
+ with:
28
+ folder: docs/_build/html
29
+ ssh-key: ${{ secrets.DEPLOY_KEY }}
30
+ force: no
@@ -0,0 +1,115 @@
1
+ name: publish distributions
2
+ on:
3
+ push:
4
+ branches:
5
+ - main
6
+ tags:
7
+ - '[0-9]+.[0-9]+'
8
+ - '[0-9]+.[0-9]+.[0-9]+'
9
+ pull_request:
10
+ branches:
11
+ - main
12
+ release:
13
+ types: [published]
14
+ workflow_dispatch:
15
+ inputs:
16
+ publish:
17
+ type: choice
18
+ description: 'Publish to TestPyPI?'
19
+ options:
20
+ - false
21
+ - true
22
+
23
+ concurrency:
24
+ group: ${{ github.workflow }}-${{ github.ref }}
25
+ cancel-in-progress: true
26
+
27
+ jobs:
28
+ build:
29
+ name: Build Python distribution
30
+ runs-on: ubuntu-latest
31
+
32
+ steps:
33
+ - uses: actions/checkout@v4
34
+ with:
35
+ fetch-depth: 0
36
+
37
+ - name: Set up Python
38
+ uses: actions/setup-python@v5
39
+ with:
40
+ python-version: '3.x'
41
+
42
+ - name: Install python-build and twine
43
+ run: |
44
+ python -m pip install --upgrade pip setuptools
45
+ python -m pip install build twine
46
+ python -m pip list
47
+
48
+ - name: Install dependencies
49
+ run: python -m pip install -r requirements.txt
50
+
51
+ - name: Build a wheel and a sdist
52
+ run: |
53
+ PYTHONWARNINGS=error,default::DeprecationWarning python -m build .
54
+
55
+ - name: Verify the distribution
56
+ run: twine check --strict dist/*
57
+
58
+ - name: List contents of sdist
59
+ run: python -m tarfile --list dist/array_api_strict-*.tar.gz
60
+
61
+ - name: List contents of wheel
62
+ run: python -m zipfile --list dist/array_api_strict-*.whl
63
+
64
+ - name: Upload distribution artifact
65
+ uses: actions/upload-artifact@v4
66
+ with:
67
+ name: dist-artifact
68
+ path: dist
69
+
70
+ publish:
71
+ name: Publish Python distribution to (Test)PyPI
72
+ if: github.event_name != 'pull_request' && github.repository == 'data-apis/array-api-strict' && github.ref_type == 'tag'
73
+ needs: build
74
+ runs-on: ubuntu-latest
75
+ # Mandatory for publishing with a trusted publisher
76
+ # c.f. https://docs.pypi.org/trusted-publishers/using-a-publisher/
77
+ permissions:
78
+ id-token: write
79
+ contents: write
80
+ # Restrict to the environment set for the trusted publisher
81
+ environment:
82
+ name: publish-package
83
+
84
+ steps:
85
+ - name: Download distribution artifact
86
+ uses: actions/download-artifact@v4
87
+ with:
88
+ name: dist-artifact
89
+ path: dist
90
+
91
+ - name: List all files
92
+ run: ls -lh dist
93
+
94
+ # - name: Publish distribution 📦 to Test PyPI
95
+ # # Publish to TestPyPI on tag events of if manually triggered
96
+ # # Compare to 'true' string as booleans get turned into strings in the console
97
+ # if: >-
98
+ # (github.event_name == 'push' && startsWith(github.ref, 'refs/tags'))
99
+ # || (github.event_name == 'workflow_dispatch' && github.event.inputs.publish == 'true')
100
+ # uses: pypa/gh-action-pypi-publish@v1.12.4
101
+ # with:
102
+ # repository-url: https://test.pypi.org/legacy/
103
+ # print-hash: true
104
+
105
+ - name: Publish distribution 📦 to PyPI
106
+ if: github.event_name == 'push' && startsWith(github.ref, 'refs/tags')
107
+ uses: pypa/gh-action-pypi-publish@v1.12.4
108
+ with:
109
+ print-hash: true
110
+
111
+ - name: Create GitHub Release from a Tag
112
+ uses: softprops/action-gh-release@v2
113
+ if: startsWith(github.ref, 'refs/tags/')
114
+ with:
115
+ files: dist/*
@@ -0,0 +1,19 @@
1
+ name: CI
2
+ on: [push, pull_request]
3
+ jobs:
4
+ check-ruff:
5
+ runs-on: ubuntu-latest
6
+ continue-on-error: true
7
+ steps:
8
+ - uses: actions/checkout@v4
9
+ - name: Install Python
10
+ uses: actions/setup-python@v5
11
+ with:
12
+ python-version: "3.11"
13
+ - name: Install dependencies
14
+ run: |
15
+ python -m pip install --upgrade pip
16
+ pip install ruff
17
+ # Update output format to enable automatic inline annotations.
18
+ - name: Run Ruff
19
+ run: ruff check --output-format=github .
@@ -0,0 +1,33 @@
1
+ name: Tests
2
+ on: [push, pull_request]
3
+ jobs:
4
+ tests:
5
+ runs-on: ubuntu-latest
6
+ strategy:
7
+ matrix:
8
+ python-version: ['3.9', '3.10', '3.11', '3.12']
9
+ numpy-version: ['1.26', 'dev']
10
+ exclude:
11
+ - python-version: '3.8'
12
+ numpy-version: 'dev'
13
+ fail-fast: true
14
+ steps:
15
+ - uses: actions/checkout@v4
16
+ - uses: actions/setup-python@v5
17
+ with:
18
+ python-version: ${{ matrix.python-version }}
19
+ - name: Install Dependencies
20
+ run: |
21
+ python -m pip install --upgrade pip
22
+ if [[ "${{ matrix.numpy-version }}" == "dev" ]]; then
23
+ python -m pip install --pre --extra-index https://pypi.anaconda.org/scientific-python-nightly-wheels/simple numpy;
24
+ else
25
+ python -m pip install 'numpy>=1.26,<2.0';
26
+ fi
27
+ python -m pip install -r requirements-dev.txt
28
+ - name: Run Tests
29
+ run: |
30
+ pytest
31
+
32
+ # Make sure it installs
33
+ pip install .
@@ -0,0 +1,165 @@
1
+ # Byte-compiled / optimized / DLL files
2
+ __pycache__/
3
+ *.py[cod]
4
+ *$py.class
5
+
6
+ # C extensions
7
+ *.so
8
+
9
+ # Distribution / packaging
10
+ .Python
11
+ build/
12
+ develop-eggs/
13
+ dist/
14
+ downloads/
15
+ eggs/
16
+ .eggs/
17
+ lib/
18
+ lib64/
19
+ parts/
20
+ sdist/
21
+ var/
22
+ wheels/
23
+ share/python-wheels/
24
+ *.egg-info/
25
+ .installed.cfg
26
+ *.egg
27
+ MANIFEST
28
+
29
+ *_version.py
30
+
31
+
32
+ # PyInstaller
33
+ # Usually these files are written by a python script from a template
34
+ # before PyInstaller builds the exe, so as to inject date/other infos into it.
35
+ *.manifest
36
+ *.spec
37
+
38
+ # Installer logs
39
+ pip-log.txt
40
+ pip-delete-this-directory.txt
41
+
42
+ # Unit test / coverage reports
43
+ htmlcov/
44
+ .tox/
45
+ .nox/
46
+ .coverage
47
+ .coverage.*
48
+ .cache
49
+ nosetests.xml
50
+ coverage.xml
51
+ *.cover
52
+ *.py,cover
53
+ .hypothesis/
54
+ .pytest_cache/
55
+ cover/
56
+
57
+ # Translations
58
+ *.mo
59
+ *.pot
60
+
61
+ # Django stuff:
62
+ *.log
63
+ local_settings.py
64
+ db.sqlite3
65
+ db.sqlite3-journal
66
+
67
+ # Flask stuff:
68
+ instance/
69
+ .webassets-cache
70
+
71
+ # Scrapy stuff:
72
+ .scrapy
73
+
74
+ # Sphinx documentation
75
+ docs/_build/
76
+
77
+ # PyBuilder
78
+ .pybuilder/
79
+ target/
80
+
81
+ # Jupyter Notebook
82
+ .ipynb_checkpoints
83
+
84
+ # IPython
85
+ profile_default/
86
+ ipython_config.py
87
+
88
+ # pyenv
89
+ # For a library or package, you might want to ignore these files since the code is
90
+ # intended to run in multiple environments; otherwise, check them in:
91
+ # .python-version
92
+
93
+ # pipenv
94
+ # According to pypa/pipenv#598, it is recommended to include Pipfile.lock in version control.
95
+ # However, in case of collaboration, if having platform-specific dependencies or dependencies
96
+ # having no cross-platform support, pipenv may install dependencies that don't work, or not
97
+ # install all needed dependencies.
98
+ #Pipfile.lock
99
+
100
+ # poetry
101
+ # Similar to Pipfile.lock, it is generally recommended to include poetry.lock in version control.
102
+ # This is especially recommended for binary packages to ensure reproducibility, and is more
103
+ # commonly ignored for libraries.
104
+ # https://python-poetry.org/docs/basic-usage/#commit-your-poetrylock-file-to-version-control
105
+ #poetry.lock
106
+
107
+ # pdm
108
+ # Similar to Pipfile.lock, it is generally recommended to include pdm.lock in version control.
109
+ #pdm.lock
110
+ # pdm stores project-wide configurations in .pdm.toml, but it is recommended to not include it
111
+ # in version control.
112
+ # https://pdm.fming.dev/#use-with-ide
113
+ .pdm.toml
114
+
115
+ # PEP 582; used by e.g. github.com/David-OConnor/pyflow and github.com/pdm-project/pdm
116
+ __pypackages__/
117
+
118
+ # Celery stuff
119
+ celerybeat-schedule
120
+ celerybeat.pid
121
+
122
+ # SageMath parsed files
123
+ *.sage.py
124
+
125
+ # Environments
126
+ .env
127
+ .venv
128
+ env/
129
+ venv/
130
+ ENV/
131
+ env.bak/
132
+ venv.bak/
133
+
134
+ # Project settings
135
+ .idea
136
+ .ropeproject
137
+ .spyderproject
138
+ .spyproject
139
+ .vscode
140
+
141
+ # mkdocs documentation
142
+ /site
143
+
144
+ # mypy
145
+ .mypy_cache/
146
+ .dmypy.json
147
+ dmypy.json
148
+
149
+ # Pyre type checker
150
+ .pyre/
151
+
152
+ # pytype static type analyzer
153
+ .pytype/
154
+
155
+ # Cython debug symbols
156
+ cython_debug/
157
+
158
+ # PyCharm
159
+ # JetBrains specific template is maintained in a separate JetBrains.gitignore that can
160
+ # be found at https://github.com/github/gitignore/blob/main/Global/JetBrains.gitignore
161
+ # and can be added to the global gitignore or merged into this file. For a more nuclear
162
+ # option (not recommended) you can uncomment the following to ignore the entire idea folder.
163
+ #.idea/
164
+
165
+ .DS_Store