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 #31

Merged
merged 13 commits into from
Apr 11, 2023
12 changes: 7 additions & 5 deletions .github/workflows/python_actions.yml
Original file line number Diff line number Diff line change
Expand Up @@ -39,15 +39,17 @@ jobs:
python-version: ${{ matrix.python-version }}
- name: Install pip, etc
uses: ./support/actions/python-tools

- name: Install Spinnaker Dependencies
uses: ./support/actions/checkout-spinn-deps
uses: ./support/actions/install-spinn-deps
with:
repositories: >
SpiNNUtils SpiNNMachine SpiNNMan PACMAN DataSpecification spalloc
SpiNNFrontEndCommon
SpiNNUtils SpiNNMachine SpiNNMan PACMAN DataSpecification
spalloc SpiNNFrontEndCommon
install: true
- name: Setup
uses: ./support/actions/run-setup

- name: Install
uses: ./support/actions/run-install

- name: Test with pytest
uses: ./support/actions/pytest
Expand Down
1 change: 1 addition & 0 deletions MANIFEST.in
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
include CITATION.cff LICENSE LICENSE_POLICY.md README.md
12 changes: 4 additions & 8 deletions requirements-test.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,10 +12,6 @@
# See the License for the specific language governing permissions and
# limitations under the License.

-r requirements.txt
flake8
# pytest will be brought in by pytest-cov
coverage >= 4.4, < 5.0
pytest-cov
testfixtures
httpretty != 1.0.0
[build-system]
requires = ["setuptools"]
build-backend = "setuptools.build_meta:"
22 changes: 0 additions & 22 deletions requirements.txt

This file was deleted.

67 changes: 67 additions & 0 deletions setup.cfg
Original file line number Diff line number Diff line change
@@ -0,0 +1,67 @@
# 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 = SpiNNakerTestBase
version = attr: spinnaker_testbase._version.__version__
description = Tools for testing SpiNNaker platform
long_description = file: README.md
long_description_content_type = text/markdown
url = https://github.com/SpiNNakerManchester/Testbase
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
test support

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

[options.packages.find]
include =
spinnaker_testbase
spinnaker_testbase.*

[options.package_data]
* =
test_scripts_header

[options.extras_require]
test =
# pytest will be brought in by pytest-cov
pytest-cov
testfixtures
httpretty != 1.0.0
87 changes: 19 additions & 68 deletions setup.py
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
# Copyright (c) 2017 The University of Manchester
# Copyright (c) 2015 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,71 +12,22 @@
# See the License for the specific language governing permissions and
# limitations under the License.

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

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

# Build a list of all project modules, as well as supplementary files
main_package = "spinnaker_testbase"
extensions = {".aplx", ".boot", ".cfg", ".json", ".sql", ".template", ".xml",
".xsd", ".dict"}
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="SpiNNakerTestBase",
version=__version__,
description="Tools for testing SpiNNaker platform",
url="https://github.com/SpiNNakerManchester/Testbase",
classifiers=[
"Development Status :: 4 - Beta",

"Intended Audience :: Developers",

"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',
'SpiNNMan == 1!6.0.1',
'SpiNNaker_PACMAN == 1!6.0.1',
'SpiNNaker_DataSpecification == 1!6.0.1',
'spalloc == 1!6.0.1'],
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, "SpiNNakerTestBase.egg-info")
if os.path.isdir(egg_dir):
distutils.dir_util.remove_tree(egg_dir)
setup()
2 changes: 1 addition & 1 deletion spinnaker_testbase/root_test_case.py
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,7 @@
from spinn_utilities.config_holder import (
get_config_bool, get_config_str, has_config_option)
from pacman.exceptions import PacmanPartitionException, PacmanValueError
from spalloc.job import JobDestroyedError
from spalloc_client.job import JobDestroyedError

if os.environ.get('CONTINUOUS_INTEGRATION', 'false').lower() == 'true':
max_tries = 3
Expand Down