scikit-package 0.0.1rc0__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.
- scikit_package-0.0.1rc0/AUTHORS.rst +14 -0
- scikit_package-0.0.1rc0/LICENSE.rst +30 -0
- scikit_package-0.0.1rc0/MANIFEST.in +12 -0
- scikit_package-0.0.1rc0/PKG-INFO +93 -0
- scikit_package-0.0.1rc0/README.rst +64 -0
- scikit_package-0.0.1rc0/pyproject.toml +87 -0
- scikit_package-0.0.1rc0/requirements/build.txt +0 -0
- scikit_package-0.0.1rc0/requirements/conda.txt +1 -0
- scikit_package-0.0.1rc0/requirements/docs.txt +4 -0
- scikit_package-0.0.1rc0/requirements/pip.txt +1 -0
- scikit_package-0.0.1rc0/requirements/test.txt +5 -0
- scikit_package-0.0.1rc0/setup.cfg +4 -0
- scikit_package-0.0.1rc0/src/scikit_package/__init__.py +28 -0
- scikit_package-0.0.1rc0/src/scikit_package/app.py +58 -0
- scikit_package-0.0.1rc0/src/scikit_package/version.py +25 -0
- scikit_package-0.0.1rc0/src/scikit_package.egg-info/PKG-INFO +93 -0
- scikit_package-0.0.1rc0/src/scikit_package.egg-info/SOURCES.txt +21 -0
- scikit_package-0.0.1rc0/src/scikit_package.egg-info/dependency_links.txt +1 -0
- scikit_package-0.0.1rc0/src/scikit_package.egg-info/entry_points.txt +2 -0
- scikit_package-0.0.1rc0/src/scikit_package.egg-info/requires.txt +1 -0
- scikit_package-0.0.1rc0/src/scikit_package.egg-info/top_level.txt +1 -0
- scikit_package-0.0.1rc0/tests/conftest.py +19 -0
- scikit_package-0.0.1rc0/tests/test_version.py +11 -0
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
Authors
|
|
2
|
+
=======
|
|
3
|
+
|
|
4
|
+
Sangjoon Lee (sl5400@columbia.edu)
|
|
5
|
+
Andrew Yang (ay2546@columbia.edu)
|
|
6
|
+
Simon Billinge (sb2896@columbia.edu)
|
|
7
|
+
|
|
8
|
+
Billinge Group and community contributors.
|
|
9
|
+
|
|
10
|
+
Contributors
|
|
11
|
+
------------
|
|
12
|
+
|
|
13
|
+
For a list of contributors, visit
|
|
14
|
+
https://github.com/Billingegroup/scikit_package/graphs/contributors
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
BSD 3-Clause License
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2024, The Trustees of Columbia University
|
|
4
|
+
in the City of New York.
|
|
5
|
+
All rights reserved.
|
|
6
|
+
|
|
7
|
+
Redistribution and use in source and binary forms, with or without
|
|
8
|
+
modification, are permitted provided that the following conditions are met:
|
|
9
|
+
|
|
10
|
+
1. Redistributions of source code must retain the above copyright notice, this
|
|
11
|
+
list of conditions and the following disclaimer.
|
|
12
|
+
|
|
13
|
+
2. Redistributions in binary form must reproduce the above copyright notice,
|
|
14
|
+
this list of conditions and the following disclaimer in the documentation
|
|
15
|
+
and/or other materials provided with the distribution.
|
|
16
|
+
|
|
17
|
+
3. Neither the name of the copyright holder nor the names of its contributors
|
|
18
|
+
may be used to endorse or promote products derived from this software
|
|
19
|
+
without specific prior written permission.
|
|
20
|
+
|
|
21
|
+
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
|
|
22
|
+
AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
|
23
|
+
IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
|
|
24
|
+
DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
|
|
25
|
+
FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
|
|
26
|
+
DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
|
|
27
|
+
SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
|
|
28
|
+
CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
|
|
29
|
+
OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
|
|
30
|
+
OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
graft src
|
|
2
|
+
graft tests
|
|
3
|
+
graft requirements
|
|
4
|
+
|
|
5
|
+
include AUTHORS.rst LICENSE*.rst README.rst
|
|
6
|
+
|
|
7
|
+
# Exclude all bytecode files and __pycache__ directories
|
|
8
|
+
global-exclude *.py[cod] # Exclude all .pyc, .pyo, and .pyd files.
|
|
9
|
+
global-exclude .DS_Store # Exclude Mac filesystem artifacts.
|
|
10
|
+
global-exclude __pycache__ # Exclude Python cache directories.
|
|
11
|
+
global-exclude .git* # Exclude git files and directories.
|
|
12
|
+
global-exclude .idea # Exclude PyCharm project settings.
|
|
@@ -0,0 +1,93 @@
|
|
|
1
|
+
Metadata-Version: 2.2
|
|
2
|
+
Name: scikit-package
|
|
3
|
+
Version: 0.0.1rc0
|
|
4
|
+
Summary: A Python package standard and generator for scientific code. Use scikit-package to launch a new project or migrate existing ones to support the latest Python versions and streamline the process of distributing and maintaining your software package.
|
|
5
|
+
Author-email: "Simon J.L. Billinge group" <simon.billinge@gmail.com>
|
|
6
|
+
Maintainer-email: "Simon J.L. Billinge group" <simon.billinge@gmail.com>
|
|
7
|
+
Project-URL: Homepage, https://github.com/Billingegroup/scikit-package/
|
|
8
|
+
Project-URL: Issues, https://github.com/Billingegroup/scikit-package/issues/
|
|
9
|
+
Keywords: Package template,open-source software
|
|
10
|
+
Classifier: Development Status :: 5 - Production/Stable
|
|
11
|
+
Classifier: Environment :: Console
|
|
12
|
+
Classifier: Intended Audience :: Developers
|
|
13
|
+
Classifier: Intended Audience :: Science/Research
|
|
14
|
+
Classifier: License :: OSI Approved :: BSD License
|
|
15
|
+
Classifier: Operating System :: MacOS :: MacOS X
|
|
16
|
+
Classifier: Operating System :: Microsoft :: Windows
|
|
17
|
+
Classifier: Operating System :: POSIX
|
|
18
|
+
Classifier: Operating System :: Unix
|
|
19
|
+
Classifier: Programming Language :: Python :: 3.11
|
|
20
|
+
Classifier: Programming Language :: Python :: 3.12
|
|
21
|
+
Classifier: Programming Language :: Python :: 3.13
|
|
22
|
+
Classifier: Topic :: Scientific/Engineering :: Physics
|
|
23
|
+
Classifier: Topic :: Scientific/Engineering :: Chemistry
|
|
24
|
+
Requires-Python: <3.14,>=3.11
|
|
25
|
+
Description-Content-Type: text/x-rst
|
|
26
|
+
License-File: LICENSE.rst
|
|
27
|
+
License-File: AUTHORS.rst
|
|
28
|
+
Requires-Dist: cookiecutter
|
|
29
|
+
|
|
30
|
+
|Icon| |title|_
|
|
31
|
+
===============
|
|
32
|
+
|
|
33
|
+
.. |title| replace:: scikit-package
|
|
34
|
+
.. _title: https://Billingegroup.github.io/scikit-package
|
|
35
|
+
|
|
36
|
+
.. |Icon| image:: https://avatars.githubusercontent.com/Billingegroup
|
|
37
|
+
:target: https://Billingegroup.github.io/scikit-package
|
|
38
|
+
:height: 100px
|
|
39
|
+
|
|
40
|
+
|PyPi| |Forge| |PythonVersion| |PR|
|
|
41
|
+
|
|
42
|
+
|CI| |Codecov| |Black| |Tracking|
|
|
43
|
+
|
|
44
|
+
.. |Black| image:: https://img.shields.io/badge/code_style-black-black
|
|
45
|
+
:target: https://github.com/psf/black
|
|
46
|
+
|
|
47
|
+
.. |CI| image:: https://github.com/Billingegroup/scikit-package/actions/workflows/matrix-and-codecov-on-merge-to-main.yml/badge.svg
|
|
48
|
+
:target: https://github.com/Billingegroup/scikit-package/actions/workflows/matrix-and-codecov-on-merge-to-main.yml
|
|
49
|
+
|
|
50
|
+
.. |Codecov| image:: https://codecov.io/gh/Billingegroup/scikit-package/branch/main/graph/badge.svg
|
|
51
|
+
:target: https://codecov.io/gh/Billingegroup/scikit-package
|
|
52
|
+
|
|
53
|
+
.. |Forge| image:: https://img.shields.io/conda/vn/conda-forge/scikit-package
|
|
54
|
+
:target: https://anaconda.org/conda-forge/scikit-package
|
|
55
|
+
|
|
56
|
+
.. |PR| image:: https://img.shields.io/badge/PR-Welcome-29ab47ff
|
|
57
|
+
|
|
58
|
+
.. |PyPi| image:: https://img.shields.io/pypi/v/scikit-package
|
|
59
|
+
:target: https://pypi.org/project/scikit-package/
|
|
60
|
+
|
|
61
|
+
.. |PythonVersion| image:: https://img.shields.io/pypi/pyversions/scikit-package
|
|
62
|
+
:target: https://pypi.org/project/scikit-package/
|
|
63
|
+
|
|
64
|
+
.. |Tracking| image:: https://img.shields.io/badge/issue_tracking-github-blue
|
|
65
|
+
:target: https://github.com/Billingegroup/scikit-package/issues
|
|
66
|
+
|
|
67
|
+
``scikit-package`` is a Python package standard and generator for scientific code. Use ``scikit-package`` to launch a new project or migrate existing ones to support the latest Python versions and streamline the process of distributing and maintaining your software package.
|
|
68
|
+
|
|
69
|
+
- Automated `PEP8 <https://peps.python.org/pep-0008/>`_ and `PEP256 <https://peps.python.org/pep-0256/>`_ standard checks.
|
|
70
|
+
- Automated PyPI/GitHub release, testing, documentation, and CHANGELOG updates.
|
|
71
|
+
- Streamlined package release workflow with a checklist.
|
|
72
|
+
- Latest Python version support compatible with `SPEC0 <https://scientific-python.org/specs/spec-0000/>`_.
|
|
73
|
+
- Rich README template containing badges, installation, support, and contribution guide.
|
|
74
|
+
- Automatic spelling check, linting for .json, .yml, and .md files.
|
|
75
|
+
|
|
76
|
+
Demo
|
|
77
|
+
----
|
|
78
|
+
|
|
79
|
+
.. image:: doc/source/gif/demo.gif
|
|
80
|
+
:alt: scikit-package demo
|
|
81
|
+
:align: center
|
|
82
|
+
|
|
83
|
+
Getting started
|
|
84
|
+
---------------
|
|
85
|
+
|
|
86
|
+
Are you interested in amplifying your scientific contribution by standarlizing and distributing your Python code? Begin with the ``Getting started`` page in our online documentation at https://Billingegroup.github.io/scikit-package!
|
|
87
|
+
|
|
88
|
+
How to cite scikit-package
|
|
89
|
+
---------------------------
|
|
90
|
+
|
|
91
|
+
If you use ``scikit-package`` to standardize your Python software, we would like you to cite scikit-package as follows:
|
|
92
|
+
|
|
93
|
+
scikit-package, https://github.com/Billingegroup/scikit-package
|
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
|Icon| |title|_
|
|
2
|
+
===============
|
|
3
|
+
|
|
4
|
+
.. |title| replace:: scikit-package
|
|
5
|
+
.. _title: https://Billingegroup.github.io/scikit-package
|
|
6
|
+
|
|
7
|
+
.. |Icon| image:: https://avatars.githubusercontent.com/Billingegroup
|
|
8
|
+
:target: https://Billingegroup.github.io/scikit-package
|
|
9
|
+
:height: 100px
|
|
10
|
+
|
|
11
|
+
|PyPi| |Forge| |PythonVersion| |PR|
|
|
12
|
+
|
|
13
|
+
|CI| |Codecov| |Black| |Tracking|
|
|
14
|
+
|
|
15
|
+
.. |Black| image:: https://img.shields.io/badge/code_style-black-black
|
|
16
|
+
:target: https://github.com/psf/black
|
|
17
|
+
|
|
18
|
+
.. |CI| image:: https://github.com/Billingegroup/scikit-package/actions/workflows/matrix-and-codecov-on-merge-to-main.yml/badge.svg
|
|
19
|
+
:target: https://github.com/Billingegroup/scikit-package/actions/workflows/matrix-and-codecov-on-merge-to-main.yml
|
|
20
|
+
|
|
21
|
+
.. |Codecov| image:: https://codecov.io/gh/Billingegroup/scikit-package/branch/main/graph/badge.svg
|
|
22
|
+
:target: https://codecov.io/gh/Billingegroup/scikit-package
|
|
23
|
+
|
|
24
|
+
.. |Forge| image:: https://img.shields.io/conda/vn/conda-forge/scikit-package
|
|
25
|
+
:target: https://anaconda.org/conda-forge/scikit-package
|
|
26
|
+
|
|
27
|
+
.. |PR| image:: https://img.shields.io/badge/PR-Welcome-29ab47ff
|
|
28
|
+
|
|
29
|
+
.. |PyPi| image:: https://img.shields.io/pypi/v/scikit-package
|
|
30
|
+
:target: https://pypi.org/project/scikit-package/
|
|
31
|
+
|
|
32
|
+
.. |PythonVersion| image:: https://img.shields.io/pypi/pyversions/scikit-package
|
|
33
|
+
:target: https://pypi.org/project/scikit-package/
|
|
34
|
+
|
|
35
|
+
.. |Tracking| image:: https://img.shields.io/badge/issue_tracking-github-blue
|
|
36
|
+
:target: https://github.com/Billingegroup/scikit-package/issues
|
|
37
|
+
|
|
38
|
+
``scikit-package`` is a Python package standard and generator for scientific code. Use ``scikit-package`` to launch a new project or migrate existing ones to support the latest Python versions and streamline the process of distributing and maintaining your software package.
|
|
39
|
+
|
|
40
|
+
- Automated `PEP8 <https://peps.python.org/pep-0008/>`_ and `PEP256 <https://peps.python.org/pep-0256/>`_ standard checks.
|
|
41
|
+
- Automated PyPI/GitHub release, testing, documentation, and CHANGELOG updates.
|
|
42
|
+
- Streamlined package release workflow with a checklist.
|
|
43
|
+
- Latest Python version support compatible with `SPEC0 <https://scientific-python.org/specs/spec-0000/>`_.
|
|
44
|
+
- Rich README template containing badges, installation, support, and contribution guide.
|
|
45
|
+
- Automatic spelling check, linting for .json, .yml, and .md files.
|
|
46
|
+
|
|
47
|
+
Demo
|
|
48
|
+
----
|
|
49
|
+
|
|
50
|
+
.. image:: doc/source/gif/demo.gif
|
|
51
|
+
:alt: scikit-package demo
|
|
52
|
+
:align: center
|
|
53
|
+
|
|
54
|
+
Getting started
|
|
55
|
+
---------------
|
|
56
|
+
|
|
57
|
+
Are you interested in amplifying your scientific contribution by standarlizing and distributing your Python code? Begin with the ``Getting started`` page in our online documentation at https://Billingegroup.github.io/scikit-package!
|
|
58
|
+
|
|
59
|
+
How to cite scikit-package
|
|
60
|
+
---------------------------
|
|
61
|
+
|
|
62
|
+
If you use ``scikit-package`` to standardize your Python software, we would like you to cite scikit-package as follows:
|
|
63
|
+
|
|
64
|
+
scikit-package, https://github.com/Billingegroup/scikit-package
|
|
@@ -0,0 +1,87 @@
|
|
|
1
|
+
[build-system]
|
|
2
|
+
requires = ["setuptools>=62.0", "setuptools-git-versioning>=2.0"]
|
|
3
|
+
build-backend = "setuptools.build_meta"
|
|
4
|
+
|
|
5
|
+
[project]
|
|
6
|
+
name = "scikit-package"
|
|
7
|
+
dynamic=['version', 'dependencies']
|
|
8
|
+
authors = [
|
|
9
|
+
{ name="Simon J.L. Billinge group", email="simon.billinge@gmail.com" },
|
|
10
|
+
]
|
|
11
|
+
maintainers = [
|
|
12
|
+
{ name="Simon J.L. Billinge group", email="simon.billinge@gmail.com" },
|
|
13
|
+
]
|
|
14
|
+
description = "A Python package standard and generator for scientific code. Use scikit-package to launch a new project or migrate existing ones to support the latest Python versions and streamline the process of distributing and maintaining your software package."
|
|
15
|
+
keywords = ['Package template', 'open-source software']
|
|
16
|
+
readme = "README.rst"
|
|
17
|
+
requires-python = ">=3.11, <3.14"
|
|
18
|
+
classifiers = [
|
|
19
|
+
'Development Status :: 5 - Production/Stable',
|
|
20
|
+
'Environment :: Console',
|
|
21
|
+
'Intended Audience :: Developers',
|
|
22
|
+
'Intended Audience :: Science/Research',
|
|
23
|
+
'License :: OSI Approved :: BSD License',
|
|
24
|
+
'Operating System :: MacOS :: MacOS X',
|
|
25
|
+
'Operating System :: Microsoft :: Windows',
|
|
26
|
+
'Operating System :: POSIX',
|
|
27
|
+
'Operating System :: Unix',
|
|
28
|
+
'Programming Language :: Python :: 3.11',
|
|
29
|
+
'Programming Language :: Python :: 3.12',
|
|
30
|
+
'Programming Language :: Python :: 3.13',
|
|
31
|
+
'Topic :: Scientific/Engineering :: Physics',
|
|
32
|
+
'Topic :: Scientific/Engineering :: Chemistry',
|
|
33
|
+
]
|
|
34
|
+
|
|
35
|
+
[project.urls]
|
|
36
|
+
Homepage = "https://github.com/Billingegroup/scikit-package/"
|
|
37
|
+
Issues = "https://github.com/Billingegroup/scikit-package/issues/"
|
|
38
|
+
|
|
39
|
+
[tool.setuptools-git-versioning]
|
|
40
|
+
enabled = true
|
|
41
|
+
template = "{tag}"
|
|
42
|
+
dev_template = "{tag}"
|
|
43
|
+
dirty_template = "{tag}"
|
|
44
|
+
|
|
45
|
+
[tool.setuptools.packages.find]
|
|
46
|
+
where = ["src"] # list of folders that contain the packages (["."] by default)
|
|
47
|
+
include = ["*"] # package names should match these glob patterns (["*"] by default)
|
|
48
|
+
exclude = [] # exclude packages matching these glob patterns (empty by default)
|
|
49
|
+
namespaces = false # to disable scanning PEP 420 namespaces (true by default)
|
|
50
|
+
|
|
51
|
+
[tool.setuptools.dynamic]
|
|
52
|
+
dependencies = {file = ["requirements/pip.txt"]}
|
|
53
|
+
|
|
54
|
+
[project.scripts]
|
|
55
|
+
package = "scikit_package.app:main"
|
|
56
|
+
|
|
57
|
+
[tool.codespell]
|
|
58
|
+
exclude-file = ".codespell/ignore_lines.txt"
|
|
59
|
+
ignore-words = ".codespell/ignore_words.txt"
|
|
60
|
+
skip = "*.cif,*.dat"
|
|
61
|
+
|
|
62
|
+
[tool.black]
|
|
63
|
+
line-length = 79
|
|
64
|
+
include = '\.pyi?$'
|
|
65
|
+
exclude = '''
|
|
66
|
+
/(
|
|
67
|
+
\.git
|
|
68
|
+
| \.hg
|
|
69
|
+
| \.mypy_cache
|
|
70
|
+
| \.tox
|
|
71
|
+
| \.venv
|
|
72
|
+
| \.rst
|
|
73
|
+
| \.txt
|
|
74
|
+
| _build
|
|
75
|
+
| buck-out
|
|
76
|
+
| build
|
|
77
|
+
| dist
|
|
78
|
+
# The following are specific to Black, you probably don't want those.
|
|
79
|
+
| blib2to3
|
|
80
|
+
| tests/data
|
|
81
|
+
)/
|
|
82
|
+
'''
|
|
83
|
+
|
|
84
|
+
[tool.pytest.ini_options]
|
|
85
|
+
addopts = [
|
|
86
|
+
"--ignore={{ cookiecutter.github_repo_name }}",
|
|
87
|
+
]
|
|
File without changes
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
cookiecutter
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
cookiecutter
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
#!/usr/bin/env python
|
|
2
|
+
##############################################################################
|
|
3
|
+
#
|
|
4
|
+
# (c) 2024 The Trustees of Columbia University in the City of New York.
|
|
5
|
+
# All rights reserved.
|
|
6
|
+
#
|
|
7
|
+
# File coded by: Billinge Group members and community contributors.
|
|
8
|
+
#
|
|
9
|
+
# See GitHub contributions for a more detailed list of contributors.
|
|
10
|
+
# https://github.com/Billingegroup/scikit-package/graphs/contributors
|
|
11
|
+
#
|
|
12
|
+
# See LICENSE.rst for license information.
|
|
13
|
+
#
|
|
14
|
+
##############################################################################
|
|
15
|
+
"""A Python package standard and generator for scientific code.
|
|
16
|
+
|
|
17
|
+
Use scikit-package to launch a new project or migrate existing ones to
|
|
18
|
+
support the latest Python versions and streamline the process of
|
|
19
|
+
distributing and maintaining your software package.
|
|
20
|
+
"""
|
|
21
|
+
|
|
22
|
+
# package version
|
|
23
|
+
from scikit_package.version import __version__
|
|
24
|
+
|
|
25
|
+
# silence the pyflakes syntax checker
|
|
26
|
+
assert __version__ or True
|
|
27
|
+
|
|
28
|
+
# End of file
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
import subprocess
|
|
2
|
+
from argparse import ArgumentParser
|
|
3
|
+
|
|
4
|
+
|
|
5
|
+
def create():
|
|
6
|
+
run_cookiecutter()
|
|
7
|
+
|
|
8
|
+
|
|
9
|
+
def update():
|
|
10
|
+
# FIXME: Implement the update command.
|
|
11
|
+
# As of now it does the same as the create command.
|
|
12
|
+
run_cookiecutter()
|
|
13
|
+
|
|
14
|
+
|
|
15
|
+
def run_cookiecutter():
|
|
16
|
+
try:
|
|
17
|
+
subprocess.run(
|
|
18
|
+
[
|
|
19
|
+
"cookiecutter",
|
|
20
|
+
"https://github.com/Billingegroup/scikit-package",
|
|
21
|
+
],
|
|
22
|
+
check=True,
|
|
23
|
+
)
|
|
24
|
+
except subprocess.CalledProcessError as e:
|
|
25
|
+
print(f"Failed to run scikit-package for the following reason: {e}")
|
|
26
|
+
|
|
27
|
+
|
|
28
|
+
def setup_subparsers(parser):
|
|
29
|
+
# Create "create" subparser
|
|
30
|
+
parser_create = parser.add_parser("create", help="Create a new package")
|
|
31
|
+
parser_create.set_defaults(func=create)
|
|
32
|
+
# Create "update" subparser
|
|
33
|
+
parser_update = parser.add_parser(
|
|
34
|
+
"update", help="Update an existing package"
|
|
35
|
+
)
|
|
36
|
+
parser_update.set_defaults(func=update)
|
|
37
|
+
|
|
38
|
+
|
|
39
|
+
def main():
|
|
40
|
+
"""Entry point for the scikit-package CLI.
|
|
41
|
+
|
|
42
|
+
Examples
|
|
43
|
+
--------
|
|
44
|
+
>>> package create
|
|
45
|
+
>>> package update
|
|
46
|
+
"""
|
|
47
|
+
|
|
48
|
+
parser = ArgumentParser(
|
|
49
|
+
description="Manage package operations with scikit-package."
|
|
50
|
+
)
|
|
51
|
+
subparsers = parser.add_subparsers(dest="command", required=True)
|
|
52
|
+
setup_subparsers(subparsers)
|
|
53
|
+
args = parser.parse_args()
|
|
54
|
+
args.func()
|
|
55
|
+
|
|
56
|
+
|
|
57
|
+
if __name__ == "__main__":
|
|
58
|
+
main()
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
#!/usr/bin/env python
|
|
2
|
+
##############################################################################
|
|
3
|
+
#
|
|
4
|
+
# (c) 2024 The Trustees of Columbia University in the City of New York.
|
|
5
|
+
# All rights reserved.
|
|
6
|
+
#
|
|
7
|
+
# File coded by: Billinge Group members and community contributors.
|
|
8
|
+
#
|
|
9
|
+
# See GitHub contributions for a more detailed list of contributors.
|
|
10
|
+
# https://github.com/Billingegroup/scikit-package/graphs/contributors
|
|
11
|
+
#
|
|
12
|
+
# See LICENSE.rst for license information.
|
|
13
|
+
#
|
|
14
|
+
##############################################################################
|
|
15
|
+
"""Definition of __version__."""
|
|
16
|
+
|
|
17
|
+
# We do not use the other three variables, but can be added back if needed.
|
|
18
|
+
# __all__ = ["__date__", "__git_commit__", "__timestamp__", "__version__"]
|
|
19
|
+
|
|
20
|
+
# obtain version information
|
|
21
|
+
from importlib.metadata import version
|
|
22
|
+
|
|
23
|
+
__version__ = version("scikit_package")
|
|
24
|
+
|
|
25
|
+
# End of file
|
|
@@ -0,0 +1,93 @@
|
|
|
1
|
+
Metadata-Version: 2.2
|
|
2
|
+
Name: scikit-package
|
|
3
|
+
Version: 0.0.1rc0
|
|
4
|
+
Summary: A Python package standard and generator for scientific code. Use scikit-package to launch a new project or migrate existing ones to support the latest Python versions and streamline the process of distributing and maintaining your software package.
|
|
5
|
+
Author-email: "Simon J.L. Billinge group" <simon.billinge@gmail.com>
|
|
6
|
+
Maintainer-email: "Simon J.L. Billinge group" <simon.billinge@gmail.com>
|
|
7
|
+
Project-URL: Homepage, https://github.com/Billingegroup/scikit-package/
|
|
8
|
+
Project-URL: Issues, https://github.com/Billingegroup/scikit-package/issues/
|
|
9
|
+
Keywords: Package template,open-source software
|
|
10
|
+
Classifier: Development Status :: 5 - Production/Stable
|
|
11
|
+
Classifier: Environment :: Console
|
|
12
|
+
Classifier: Intended Audience :: Developers
|
|
13
|
+
Classifier: Intended Audience :: Science/Research
|
|
14
|
+
Classifier: License :: OSI Approved :: BSD License
|
|
15
|
+
Classifier: Operating System :: MacOS :: MacOS X
|
|
16
|
+
Classifier: Operating System :: Microsoft :: Windows
|
|
17
|
+
Classifier: Operating System :: POSIX
|
|
18
|
+
Classifier: Operating System :: Unix
|
|
19
|
+
Classifier: Programming Language :: Python :: 3.11
|
|
20
|
+
Classifier: Programming Language :: Python :: 3.12
|
|
21
|
+
Classifier: Programming Language :: Python :: 3.13
|
|
22
|
+
Classifier: Topic :: Scientific/Engineering :: Physics
|
|
23
|
+
Classifier: Topic :: Scientific/Engineering :: Chemistry
|
|
24
|
+
Requires-Python: <3.14,>=3.11
|
|
25
|
+
Description-Content-Type: text/x-rst
|
|
26
|
+
License-File: LICENSE.rst
|
|
27
|
+
License-File: AUTHORS.rst
|
|
28
|
+
Requires-Dist: cookiecutter
|
|
29
|
+
|
|
30
|
+
|Icon| |title|_
|
|
31
|
+
===============
|
|
32
|
+
|
|
33
|
+
.. |title| replace:: scikit-package
|
|
34
|
+
.. _title: https://Billingegroup.github.io/scikit-package
|
|
35
|
+
|
|
36
|
+
.. |Icon| image:: https://avatars.githubusercontent.com/Billingegroup
|
|
37
|
+
:target: https://Billingegroup.github.io/scikit-package
|
|
38
|
+
:height: 100px
|
|
39
|
+
|
|
40
|
+
|PyPi| |Forge| |PythonVersion| |PR|
|
|
41
|
+
|
|
42
|
+
|CI| |Codecov| |Black| |Tracking|
|
|
43
|
+
|
|
44
|
+
.. |Black| image:: https://img.shields.io/badge/code_style-black-black
|
|
45
|
+
:target: https://github.com/psf/black
|
|
46
|
+
|
|
47
|
+
.. |CI| image:: https://github.com/Billingegroup/scikit-package/actions/workflows/matrix-and-codecov-on-merge-to-main.yml/badge.svg
|
|
48
|
+
:target: https://github.com/Billingegroup/scikit-package/actions/workflows/matrix-and-codecov-on-merge-to-main.yml
|
|
49
|
+
|
|
50
|
+
.. |Codecov| image:: https://codecov.io/gh/Billingegroup/scikit-package/branch/main/graph/badge.svg
|
|
51
|
+
:target: https://codecov.io/gh/Billingegroup/scikit-package
|
|
52
|
+
|
|
53
|
+
.. |Forge| image:: https://img.shields.io/conda/vn/conda-forge/scikit-package
|
|
54
|
+
:target: https://anaconda.org/conda-forge/scikit-package
|
|
55
|
+
|
|
56
|
+
.. |PR| image:: https://img.shields.io/badge/PR-Welcome-29ab47ff
|
|
57
|
+
|
|
58
|
+
.. |PyPi| image:: https://img.shields.io/pypi/v/scikit-package
|
|
59
|
+
:target: https://pypi.org/project/scikit-package/
|
|
60
|
+
|
|
61
|
+
.. |PythonVersion| image:: https://img.shields.io/pypi/pyversions/scikit-package
|
|
62
|
+
:target: https://pypi.org/project/scikit-package/
|
|
63
|
+
|
|
64
|
+
.. |Tracking| image:: https://img.shields.io/badge/issue_tracking-github-blue
|
|
65
|
+
:target: https://github.com/Billingegroup/scikit-package/issues
|
|
66
|
+
|
|
67
|
+
``scikit-package`` is a Python package standard and generator for scientific code. Use ``scikit-package`` to launch a new project or migrate existing ones to support the latest Python versions and streamline the process of distributing and maintaining your software package.
|
|
68
|
+
|
|
69
|
+
- Automated `PEP8 <https://peps.python.org/pep-0008/>`_ and `PEP256 <https://peps.python.org/pep-0256/>`_ standard checks.
|
|
70
|
+
- Automated PyPI/GitHub release, testing, documentation, and CHANGELOG updates.
|
|
71
|
+
- Streamlined package release workflow with a checklist.
|
|
72
|
+
- Latest Python version support compatible with `SPEC0 <https://scientific-python.org/specs/spec-0000/>`_.
|
|
73
|
+
- Rich README template containing badges, installation, support, and contribution guide.
|
|
74
|
+
- Automatic spelling check, linting for .json, .yml, and .md files.
|
|
75
|
+
|
|
76
|
+
Demo
|
|
77
|
+
----
|
|
78
|
+
|
|
79
|
+
.. image:: doc/source/gif/demo.gif
|
|
80
|
+
:alt: scikit-package demo
|
|
81
|
+
:align: center
|
|
82
|
+
|
|
83
|
+
Getting started
|
|
84
|
+
---------------
|
|
85
|
+
|
|
86
|
+
Are you interested in amplifying your scientific contribution by standarlizing and distributing your Python code? Begin with the ``Getting started`` page in our online documentation at https://Billingegroup.github.io/scikit-package!
|
|
87
|
+
|
|
88
|
+
How to cite scikit-package
|
|
89
|
+
---------------------------
|
|
90
|
+
|
|
91
|
+
If you use ``scikit-package`` to standardize your Python software, we would like you to cite scikit-package as follows:
|
|
92
|
+
|
|
93
|
+
scikit-package, https://github.com/Billingegroup/scikit-package
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
AUTHORS.rst
|
|
2
|
+
LICENSE.rst
|
|
3
|
+
MANIFEST.in
|
|
4
|
+
README.rst
|
|
5
|
+
pyproject.toml
|
|
6
|
+
requirements/build.txt
|
|
7
|
+
requirements/conda.txt
|
|
8
|
+
requirements/docs.txt
|
|
9
|
+
requirements/pip.txt
|
|
10
|
+
requirements/test.txt
|
|
11
|
+
src/scikit_package/__init__.py
|
|
12
|
+
src/scikit_package/app.py
|
|
13
|
+
src/scikit_package/version.py
|
|
14
|
+
src/scikit_package.egg-info/PKG-INFO
|
|
15
|
+
src/scikit_package.egg-info/SOURCES.txt
|
|
16
|
+
src/scikit_package.egg-info/dependency_links.txt
|
|
17
|
+
src/scikit_package.egg-info/entry_points.txt
|
|
18
|
+
src/scikit_package.egg-info/requires.txt
|
|
19
|
+
src/scikit_package.egg-info/top_level.txt
|
|
20
|
+
tests/conftest.py
|
|
21
|
+
tests/test_version.py
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
cookiecutter
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
scikit_package
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import json
|
|
2
|
+
from pathlib import Path
|
|
3
|
+
|
|
4
|
+
import pytest
|
|
5
|
+
|
|
6
|
+
|
|
7
|
+
@pytest.fixture
|
|
8
|
+
def user_filesystem(tmp_path):
|
|
9
|
+
base_dir = Path(tmp_path)
|
|
10
|
+
home_dir = base_dir / "home_dir"
|
|
11
|
+
home_dir.mkdir(parents=True, exist_ok=True)
|
|
12
|
+
cwd_dir = base_dir / "cwd_dir"
|
|
13
|
+
cwd_dir.mkdir(parents=True, exist_ok=True)
|
|
14
|
+
|
|
15
|
+
home_config_data = {"username": "home_username", "email": "home@email.com"}
|
|
16
|
+
with open(home_dir / "diffpyconfig.json", "w") as f:
|
|
17
|
+
json.dump(home_config_data, f)
|
|
18
|
+
|
|
19
|
+
yield tmp_path
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
"""Unit tests for __version__.py."""
|
|
2
|
+
|
|
3
|
+
import scikit_package
|
|
4
|
+
|
|
5
|
+
|
|
6
|
+
def test_package_version():
|
|
7
|
+
"""Ensure the package version is defined and not set to the initial
|
|
8
|
+
placeholder."""
|
|
9
|
+
assert hasattr(scikit_package, "__version__")
|
|
10
|
+
assert scikit_package.__version__ != "0.0.0"
|
|
11
|
+
print(scikit_package.__version__)
|