Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Pyproject.toml #500

Merged
merged 20 commits into from
Apr 11, 2023
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
8 changes: 4 additions & 4 deletions .github/workflows/python_actions.yml
Original file line number Diff line number Diff line change
Expand Up @@ -45,14 +45,14 @@ jobs:
- name: Install pip, etc
uses: ./support/actions/python-tools

- name: Checkout Spinnaker Dependencies
uses: ./support/actions/checkout-spinn-deps
- name: Install Spinnaker Dependencies
uses: ./support/actions/install-spinn-deps
with:
repositories: SpiNNUtils SpiNNMachine
install: true

- name: Setup
uses: ./support/actions/run-setup
- name: Run Install
uses: ./support/actions/run-install

- name: Test with pytest
uses: ./support/actions/pytest
Expand Down
2 changes: 1 addition & 1 deletion MANIFEST.in
Original file line number Diff line number Diff line change
@@ -1 +1 @@
include CITATION.cff LICENSE.md requirements.txt pypi_to_import
include LICENSE LICENSE_POLICY.md README.md CITATION.cff
12 changes: 9 additions & 3 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -44,16 +44,22 @@ the git repository:
To install as a development version which all users will then be able to use,
run the following where the code has been extracted:

sudo python setup.py develop
sudo pip install -e .

To install as a development version for only yourself, run:

python setup.py develop --user
pip install -e . --user

To install as a development version in a `virtualenv`, with the `virutalenv`
enabled, run:

python setup.py develop
pip install -e .

Test Installation
=================
To be able to run the unitests add [Test] to the pip installs above

pip install -e .[Test]

Documentation
=============
Expand Down
9 changes: 4 additions & 5 deletions requirements.txt → pyproject.toml
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
# Copyright (c) 2017 The University of Manchester
# Copyright (c) 2023 The University of Manchester
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
Expand All @@ -12,7 +12,6 @@
# See the License for the specific language governing permissions and
# limitations under the License.

jsonschema <= 4.17.3; python_version == '3.7'
jsonschema; python_version >= '3.8'
SpiNNUtilities == 1!6.0.1
SpiNNMachine == 1!6.0.1
[build-system]
requires = ["setuptools"]
build-backend = "setuptools.build_meta:"
22 changes: 0 additions & 22 deletions requirements-test.txt

This file was deleted.

73 changes: 73 additions & 0 deletions setup.cfg
Original file line number Diff line number Diff line change
@@ -0,0 +1,73 @@
# Copyright (c) 2023 The University of Manchester
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# https://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
[metadata]
name = SpiNNaker_PACMAN
version = attr: pacman._version.__version__
description = Partition and Configuration Manager
#long_description = file: README.md
#long_description_content_type = text/markdown
url = https://github.com/SpiNNakerManchester/PACMAN
license = Apache-2.0
classifiers=
Development Status :: 5 - Production/Stable
Intended Audience :: Developers
Intended Audience :: Science/Research
License :: OSI Approved :: Apache License 2.0
Natural Language :: English
Operating System :: POSIX :: Linux
Operating System :: Microsoft :: Windows
Operating System :: MacOS
Programming Language :: Python :: 3
Programming Language :: Python :: 3.7
Programming Language :: Python :: 3.8
Programming Language :: Python :: 3.9
Programming Language :: Python :: 3.10
Programming Language :: Python :: 3.11
maintainer = SpiNNakerTeam
maintainer_email = [email protected]
keywords =
spinnaker
routing
partitioning
placement

[options]
python_requires = >=3.7, <4
packages = find:
zip_safe = True
include_package_data = True
install_requires =
jsonschema
SpiNNUtilities == 1!6.0.1
SpiNNMachine == 1!6.0.1

[options.packages.find]
include =
pacman
pacman.*
pacman_test_objects
pacman_test_objects.*

[options.package_data]
* =
pacman.cfg
*.json

[options.extras_require]
test =
# pytest will be brought in by pytest-cov
pytest-cov
pylint
testfixtures

88 changes: 19 additions & 69 deletions setup.py
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
# Copyright (c) 2014 The University of Manchester
# Copyright (c) 2023 The University of Manchester
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
Expand All @@ -12,72 +12,22 @@
# See the License for the specific language governing permissions and
# limitations under the License.

from collections import defaultdict
import distutils.dir_util
from setuptools import setup
import os
try:
from setuptools import setup
except ImportError:
from distutils.core import setup

__version__ = None
exec(open("pacman/_version.py").read())
assert __version__

# Build a list of all project modules, as well as supplementary files
main_package = "pacman"
extensions = {".aplx", ".boot", ".cfg", ".json", ".sql", ".template", ".xml",
".xsd"}
main_package_dir = os.path.join(os.path.dirname(__file__), main_package)
start = len(main_package_dir)
packages = []
package_data = defaultdict(list)
for dirname, dirnames, filenames in os.walk(main_package_dir):
if '__init__.py' in filenames:
package = "{}{}".format(
main_package, dirname[start:].replace(os.sep, '.'))
packages.append(package)
for filename in filenames:
_, ext = os.path.splitext(filename)
if ext in extensions:
package = "{}{}".format(
main_package, dirname[start:].replace(os.sep, '.'))
package_data[package].append(filename)

setup(
name="SpiNNaker_PACMAN",
version=__version__,
description="Partition and Configuration Manager",
url="https://github.com/SpiNNakerManchester/PACMAN",
license="Apache License 2.0",
classifiers=[
"Development Status :: 5 - Production/Stable",

"Intended Audience :: Developers",
"Intended Audience :: Science/Research",

"License :: OSI Approved :: Apache License 2.0",

"Natural Language :: English",

"Operating System :: POSIX :: Linux",
"Operating System :: Microsoft :: Windows",
"Operating System :: MacOS",

"Programming Language :: Python :: 3",
"Programming Language :: Python :: 3.7",
"Programming Language :: Python :: 3.8",
"Programming Language :: Python :: 3.9",
"Programming Language :: Python :: 3.10",
"Programming Language :: Python :: 3.11",
],
packages=packages,
package_data=package_data,
install_requires=[
'SpiNNUtilities == 1!6.0.1',
'SpiNNMachine == 1!6.0.1',
"jsonschema <= 4.17.3; python_version == '3.7'",
"jsonschema; python_version >= '3.8'",
],
maintainer="SpiNNakerTeam",
maintainer_email="[email protected]"
)
import sys


if __name__ == '__main__':
# Repeated installs assume files have not changed
# https://github.com/pypa/setuptools/issues/3236
if len(sys.argv) > 0 and sys.argv[1] == 'egg_info':
# on the first call to setpy.py remove files left by previous install
this_dir = os.path.dirname(os.path.abspath(__file__))
build_dir = os.path.join(this_dir, "build")
if os.path.isdir(build_dir):
distutils.dir_util.remove_tree(build_dir)
egg_dir = os.path.join(this_dir, "SpiNNaker_PACMAN.egg-info")
if os.path.isdir(egg_dir):
distutils.dir_util.remove_tree(egg_dir)
setup()