Skip to content

Commit a4f56b7

Browse files
committed
inital commit
0 parents  commit a4f56b7

30 files changed

+1211
-0
lines changed

.circleci/config.yml

+213
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,213 @@
1+
# Use the latest 2.1 version of CircleCI pipeline process engine.
2+
# See: https://circleci.com/docs/2.0/configuration-reference
3+
version: 2.1
4+
5+
# Orbs are reusable packages of CircleCI configuration that you may share across projects, enabling you to create encapsulated, parameterized commands, jobs, and executors that can be used across multiple projects.
6+
# See: https://circleci.com/docs/2.0/orb-intro/
7+
orbs:
8+
# The python orb contains a set of prepackaged CircleCI configuration you can use repeatedly in your configuration files
9+
# Orb commands and jobs help you with common scripting around a language/tool
10+
# so you dont have to copy and paste it everywhere.
11+
# See the orb documentation here: https://circleci.com/developer/orbs/orb/circleci/python
12+
python: circleci/[email protected]
13+
14+
15+
executors:
16+
python-docker: # declares a reusable executor
17+
parameters:
18+
version:
19+
description: "version tag"
20+
default: "latest"
21+
type: string
22+
docker:
23+
- image: cimg/python:<<parameters.version>>
24+
25+
# Define a job to be invoked later in a workflow.
26+
# See: https://circleci.com/docs/2.0/configuration-reference/#jobs
27+
jobs:
28+
build_and_test:
29+
parameters:
30+
version:
31+
description: "version tag"
32+
default: "latest"
33+
type: string
34+
executor:
35+
name: python-docker
36+
version: <<parameters.version>>
37+
38+
steps:
39+
- checkout
40+
# - run:
41+
# name: Install System Dependencies
42+
# command: sudo apt-get update && sudo apt-get install -y libsndfile1
43+
- python/install-packages:
44+
pkg-manager: pip
45+
# app-dir: ~/project/package-directory/ # If you're requirements.txt isn't in the root directory.
46+
pip-dependency-file: requirements_dev.txt
47+
- run:
48+
name: Run tests
49+
command: pytest
50+
51+
flake:
52+
parameters:
53+
version:
54+
description: "version tag"
55+
default: "latest"
56+
type: string
57+
executor:
58+
name: python-docker
59+
version: <<parameters.version>>
60+
61+
steps:
62+
- checkout
63+
- python/install-packages:
64+
pkg-manager: pip
65+
# app-dir: ~/project/package-directory/ # If you're requirements.txt isn't in the root directory.
66+
pip-dependency-file: requirements_dev.txt
67+
- run:
68+
name: Flake8
69+
command: flake8 imkar
70+
71+
# test_examples:
72+
# parameters:
73+
# version:
74+
# description: "version tag"
75+
# default: "latest"
76+
# type: string
77+
# executor:
78+
# name: python-docker
79+
# version: <<parameters.version>>
80+
81+
# steps:
82+
# - checkout
83+
# # - run:
84+
# # name: Install System Dependencies
85+
# # command: sudo apt-get update && sudo apt-get install -y libsndfile1
86+
# - python/install-packages:
87+
# pkg-manager: pip
88+
# # app-dir: ~/project/package-directory/ # If you're requirements.txt isn't in the root directory.
89+
# pip-dependency-file: requirements_dev.txt
90+
# - run:
91+
# name: Examples
92+
# command: |
93+
# pip install -e .
94+
# pytest --nbmake examples/*.ipynb
95+
96+
test_pypi_publish:
97+
parameters:
98+
version:
99+
description: "version tag"
100+
default: "latest"
101+
type: string
102+
executor:
103+
name: python-docker
104+
version: <<parameters.version>>
105+
106+
steps:
107+
- checkout
108+
# - run:
109+
# name: Install System Dependencies
110+
# command: sudo apt-get update && sudo apt-get install -y libsndfile1
111+
- python/install-packages:
112+
pkg-manager: pip
113+
# app-dir: ~/project/package-directory/ # If you're requirements.txt isn't in the root directory.
114+
pip-dependency-file: requirements_dev.txt
115+
- run:
116+
name: deploy
117+
command: | # create whl, install twine and publish to Test PyPI
118+
python setup.py sdist bdist_wheel
119+
twine upload dist/*
120+
121+
# Invoke jobs via workflows
122+
# See: https://circleci.com/docs/2.0/configuration-reference/#workflows
123+
workflows:
124+
test: # Test workflow
125+
jobs:
126+
# Run tests for all python versions
127+
- build_and_test:
128+
matrix:
129+
parameters:
130+
version:
131+
- "3.7"
132+
- "3.8"
133+
- "3.9"
134+
- "3.10"
135+
- flake:
136+
matrix:
137+
parameters:
138+
version:
139+
- "3.9"
140+
requires:
141+
- build_and_test
142+
143+
# - test_examples:
144+
# matrix:
145+
# parameters:
146+
# version:
147+
# - "3.9"
148+
# requires:
149+
# - build_and_test
150+
151+
152+
test_and_publish:
153+
# Test and publish on new git version tags
154+
# This requires its own workflow to successfully trigger the test and build
155+
jobs:
156+
- build_and_test:
157+
matrix:
158+
parameters:
159+
version:
160+
- "3.7"
161+
- "3.8"
162+
- "3.9"
163+
- "3.10"
164+
filters:
165+
branches:
166+
ignore: /.*/
167+
# only act on version tags
168+
tags:
169+
only: /^v[0-9]+(\.[0-9]+)*$/
170+
171+
- flake:
172+
matrix:
173+
parameters:
174+
version:
175+
- "3.9"
176+
requires:
177+
- build_and_test
178+
filters:
179+
branches:
180+
ignore: /.*/
181+
# only act on version tags
182+
tags:
183+
only: /^v[0-9]+(\.[0-9]+)*$/
184+
185+
# - test_examples:
186+
# matrix:
187+
# parameters:
188+
# version:
189+
# - "3.9"
190+
# requires:
191+
# - build_and_test
192+
# filters:
193+
# branches:
194+
# ignore: /.*/
195+
# # only act on version tags
196+
# tags:
197+
# only: /^v[0-9]+(\.[0-9]+)*$/
198+
199+
- test_pypi_publish:
200+
matrix:
201+
parameters:
202+
version:
203+
- "3.9"
204+
requires:
205+
- build_and_test
206+
- flake
207+
# - test_examples
208+
filters:
209+
branches:
210+
ignore: /.*/
211+
# only act on version tags
212+
tags:
213+
only: /^v[0-9]+(\.[0-9]+)*$/

.editorconfig

+21
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
# http://editorconfig.org
2+
3+
root = true
4+
5+
[*]
6+
indent_style = space
7+
indent_size = 4
8+
trim_trailing_whitespace = true
9+
insert_final_newline = true
10+
charset = utf-8
11+
end_of_line = lf
12+
13+
[*.bat]
14+
indent_style = tab
15+
end_of_line = crlf
16+
17+
[LICENSE]
18+
insert_final_newline = false
19+
20+
[Makefile]
21+
indent_style = tab

.github/ISSUE_TEMPLATE.md

+27
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,27 @@
1+
* imkar version:
2+
* Python version:
3+
* Operating System:
4+
5+
### Description
6+
7+
Describe what you were trying to get done.
8+
Tell us what happened, what went wrong, and what you expected to happen.
9+
10+
### What I Did
11+
12+
```
13+
Paste the command(s) you ran and the output.
14+
If there was a crash, please include the traceback here.
15+
```
16+
17+
## Labels
18+
19+
Label your issue to make it easier for us to assign and track:
20+
21+
Use one of these labels:
22+
- **hot:** For bugs on the master branch
23+
- **bug:** For bugs not on the master branch
24+
- **enhancement:** For suggesting enhancements of current functionality
25+
- **feature:** For requesting new features
26+
- **documentation:** Everything related to docstrings and comments
27+
- **question:** General questions, e.g., regarding the general structure or future directions

.github/PULL_REQUEST_TEMPLATE.md

+20
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
### Which issue(s) are closed by this pull request?
2+
3+
Closes #
4+
5+
### Changes proposed in this pull request:
6+
7+
-
8+
-
9+
-
10+
11+
### Labels
12+
13+
Label your issue to make it easier for us to assign and track:
14+
15+
Use one of these labels:
16+
- **hot:** For bugs on the master branch
17+
- **bug:** For bugs not on the master branch
18+
- **enhancement:** For suggesting enhancements of current functionality
19+
- **feature:** For requesting new features
20+
- **documentation:** Everything related to docstrings and comments

.gitignore

+106
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,106 @@
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+
env/
12+
build/
13+
develop-eggs/
14+
dist/
15+
downloads/
16+
eggs/
17+
.eggs/
18+
lib/
19+
lib64/
20+
parts/
21+
sdist/
22+
var/
23+
wheels/
24+
*.egg-info/
25+
.installed.cfg
26+
*.egg
27+
28+
# PyInstaller
29+
# Usually these files are written by a python script from a template
30+
# before PyInstaller builds the exe, so as to inject date/other infos into it.
31+
*.manifest
32+
*.spec
33+
34+
# Installer logs
35+
pip-log.txt
36+
pip-delete-this-directory.txt
37+
38+
# Unit test / coverage reports
39+
htmlcov/
40+
.tox/
41+
.coverage
42+
.coverage.*
43+
.cache
44+
nosetests.xml
45+
coverage.xml
46+
*.cover
47+
.hypothesis/
48+
.pytest_cache/
49+
50+
# Translations
51+
*.mo
52+
*.pot
53+
54+
# Django stuff:
55+
*.log
56+
local_settings.py
57+
58+
# Flask stuff:
59+
instance/
60+
.webassets-cache
61+
62+
# Scrapy stuff:
63+
.scrapy
64+
65+
# Sphinx documentation
66+
docs/_build/
67+
68+
# PyBuilder
69+
target/
70+
71+
# Jupyter Notebook
72+
.ipynb_checkpoints
73+
74+
# pyenv
75+
.python-version
76+
77+
# celery beat schedule file
78+
celerybeat-schedule
79+
80+
# SageMath parsed files
81+
*.sage.py
82+
83+
# dotenv
84+
.env
85+
86+
# virtualenv
87+
.venv
88+
venv/
89+
ENV/
90+
91+
# Spyder project settings
92+
.spyderproject
93+
.spyproject
94+
95+
# Rope project settings
96+
.ropeproject
97+
98+
# mkdocs documentation
99+
/site
100+
101+
# mypy
102+
.mypy_cache/
103+
104+
# IDE settings
105+
.vscode/
106+
.idea/

0 commit comments

Comments
 (0)