Use hatchling instead of setuptools (#237)

* Use hatchling instead of setuptools
* Add __pycache__ to gitignore
This commit is contained in:
Adrian 2024-08-16 17:24:26 +02:00 committed by GitHub
parent a61334a955
commit ebe57a770b
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
73 changed files with 944 additions and 883 deletions

1
.gitignore vendored
View File

@ -21,3 +21,4 @@ node_modules/
*.lock
url_map.json
.venv/
__pycache__/

41
_meta/pyproject.toml Normal file
View File

@ -0,0 +1,41 @@
[project]
name = 'indico-plugins'
description = 'A meta-package containing the official Indico plugins'
readme = 'README.md'
version = '3.3'
license = 'MIT'
authors = [{ name = 'Indico Team', email = 'indico-team@cern.ch' }]
classifiers = [
'Environment :: Plugins',
'Environment :: Web Environment',
'License :: OSI Approved :: MIT License',
'Programming Language :: Python :: 3.12',
]
requires-python = '>=3.12.2, <3.13'
dependencies = [
'indico>=3.3',
'indico-plugin-citadel>=3.3,<3.4.dev0',
'indico-plugin-cloud-captchas>=3.3,<3.4.dev0',
'indico-plugin-livesync>=3.3,<3.4.dev0',
'indico-plugin-owncloud>=3.3,<3.4.dev0',
'indico-plugin-payment-manual>=3.3,<3.4.dev0',
'indico-plugin-payment-paypal>=3.3,<3.4.dev0',
'indico-plugin-payment-sixpay>=3.3,<3.4.dev0',
'indico-plugin-piwik>=3.3,<3.4.dev0',
'indico-plugin-previewer-code>=3.3,<3.4.dev0',
'indico-plugin-previewer-jupyter>=3.3,<3.4.dev0',
'indico-plugin-prometheus>=3.3,<3.4.dev0',
'indico-plugin-storage-s3>=3.3,<3.4.dev0',
'indico-plugin-ursh>=3.3,<3.4.dev0',
'indico-plugin-vc-zoom>=3.3,<3.4.dev0',
]
[project.urls]
GitHub = 'https://github.com/indico/indico-plugins'
[build-system]
requires = ['hatchling==1.25.0']
build-backend = 'hatchling.build'
[tool.hatch.build.targets.wheel]
bypass-selection = true

View File

@ -1,41 +0,0 @@
[metadata]
name = indico-plugins
version = 3.3
description = A meta-package containing the official Indico plugins
long_description = file: README.md
long_description_content_type = text/markdown; charset=UTF-8; variant=GFM
url = https://github.com/indico/indico-plugins
license = MIT
author = Indico Team
author_email = indico-team@cern.ch
classifiers =
Environment :: Plugins
Environment :: Web Environment
License :: OSI Approved :: MIT License
Programming Language :: Python :: 3.12
[options]
zip_safe = false
python_requires = >=3.12.2, <3.13
install_requires =
indico>=3.3
# Note: The following block must always be right after the indico requirement
# of install_requires in [options], and at the very end of that block since
# it may also have extras added which are in a separate section.
# BEGIN GENERATED REQUIREMENTS
indico-plugin-citadel>=3.3,<3.4.dev0
indico-plugin-cloud-captchas>=3.3,<3.4.dev0
indico-plugin-livesync>=3.3,<3.4.dev0
indico-plugin-owncloud>=3.3,<3.4.dev0
indico-plugin-payment-manual>=3.3,<3.4.dev0
indico-plugin-payment-paypal>=3.3,<3.4.dev0
indico-plugin-payment-sixpay>=3.3,<3.4.dev0
indico-plugin-piwik>=3.3,<3.4.dev0
indico-plugin-previewer-code>=3.3,<3.4.dev0
indico-plugin-previewer-jupyter>=3.3,<3.4.dev0
indico-plugin-prometheus>=3.3,<3.4.dev0
indico-plugin-storage-s3>=3.3,<3.4.dev0
indico-plugin-ursh>=3.3,<3.4.dev0
indico-plugin-vc-zoom>=3.3,<3.4.dev0
# END GENERATED REQUIREMENTS

View File

@ -1,11 +0,0 @@
# This file is part of the Indico plugins.
# Copyright (C) 2002 - 2024 CERN
#
# The Indico plugins are free software; you can redistribute
# them and/or modify them under the terms of the MIT License;
# see the LICENSE file for more details.
from setuptools import setup
setup()

View File

@ -1,5 +0,0 @@
graft indico_citadel/migrations
graft indico_citadel/templates
graft indico_citadel/translations
global-exclude *.pyc __pycache__ .keep

47
citadel/pyproject.toml Normal file
View File

@ -0,0 +1,47 @@
[project]
name = 'indico-plugin-citadel'
description = 'Indico search+livesync backend using Citadel+ElasticSearch'
readme = 'README.md'
version = '3.3'
license = 'MIT'
authors = [{ name = 'Indico Team', email = 'indico-team@cern.ch' }]
classifiers = [
'Environment :: Plugins',
'Environment :: Web Environment',
'License :: OSI Approved :: MIT License',
'Programming Language :: Python :: 3.12',
]
requires-python = '>=3.12.2, <3.13'
dependencies = ['indico>=3.3', 'indico-plugin-livesync>=3.3.dev0']
[project.urls]
GitHub = 'https://github.com/indico/indico-plugins'
[project.entry-points.'indico.plugins']
citadel = 'indico_citadel.plugin:CitadelPlugin'
[build-system]
requires = ['hatchling==1.25.0']
build-backend = 'hatchling.build'
[tool.hatch.build]
packages = ['indico_citadel']
exclude = [
'*.no-header',
'.keep',
# exclude original client sources (they are all included in source maps anyway)
'indico_*/client/',
# no need for tests outside development
'test_snapshots/',
'tests/',
'*_test.py',
]
artifacts = [
'indico_*/translations/**/messages-react.json',
'indico_*/translations/**/*.mo',
'indico_*/static/dist/',
]
[tool.hatch.build.targets.sdist.hooks.custom]
path = '../hatch_build.py'
dependencies = ['babel==2.14.0']

View File

@ -1,33 +0,0 @@
[metadata]
name = indico-plugin-citadel
version = 3.3
description = Indico search+livesync backend using Citadel+ElasticSearch
long_description = file: README.md
long_description_content_type = text/markdown; charset=UTF-8; variant=GFM
url = https://github.com/indico/indico-plugins
license = MIT
author = Indico Team
author_email = indico-team@cern.ch
classifiers =
Environment :: Plugins
Environment :: Web Environment
License :: OSI Approved :: MIT License
Programming Language :: Python :: 3.12
[options]
packages = find:
zip_safe = false
include_package_data = true
python_requires = >=3.12.2, <3.13
install_requires =
indico>=3.3
indico-plugin-livesync>=3.3.dev0
[options.entry_points]
indico.plugins =
citadel = indico_citadel.plugin:CitadelPlugin
[pydocstyle]
ignore = D100,D101,D102,D103,D104,D105,D107,D203,D213

View File

@ -1,11 +0,0 @@
# This file is part of the Indico plugins.
# Copyright (C) 2002 - 2024 CERN
#
# The Indico plugins are free software; you can redistribute
# them and/or modify them under the terms of the MIT License;
# see the LICENSE file for more details.
from setuptools import setup
setup()

View File

@ -1,4 +0,0 @@
graft indico_cloud_captchas/static
graft indico_cloud_captchas/translations
global-exclude *.pyc __pycache__ .keep

View File

@ -0,0 +1,47 @@
[project]
name = 'indico-plugin-cloud-captchas'
description = 'Google reCAPTCHA plugin for Indico'
readme = 'README.md'
version = '3.3'
license = 'MIT'
authors = [{ name = 'Indico Team', email = 'indico-team@cern.ch' }]
classifiers = [
'Environment :: Plugins',
'Environment :: Web Environment',
'License :: OSI Approved :: MIT License',
'Programming Language :: Python :: 3.12',
]
requires-python = '>=3.12.2, <3.13'
dependencies = ['indico>=3.3']
[project.urls]
GitHub = 'https://github.com/indico/indico-plugins'
[project.entry-points.'indico.plugins']
cloud_captchas = 'indico_cloud_captchas.plugin:CloudCaptchasPlugin'
[build-system]
requires = ['hatchling==1.25.0']
build-backend = 'hatchling.build'
[tool.hatch.build]
packages = ['indico_cloud_captchas']
exclude = [
'*.no-header',
'.keep',
# exclude original client sources (they are all included in source maps anyway)
'indico_*/client/',
# no need for tests outside development
'test_snapshots/',
'tests/',
'*_test.py',
]
artifacts = [
'indico_*/translations/**/messages-react.json',
'indico_*/translations/**/*.mo',
'indico_*/static/dist/',
]
[tool.hatch.build.targets.sdist.hooks.custom]
path = '../hatch_build.py'
dependencies = ['babel==2.14.0']

View File

@ -1,32 +0,0 @@
[metadata]
name = indico-plugin-cloud-captchas
version = 3.3
description = Google reCAPTCHA plugin for Indico
long_description = file: README.md
long_description_content_type = text/markdown; charset=UTF-8; variant=GFM
url = https://github.com/indico/indico-plugins
license = MIT
author = Indico Team
author_email = indico-team@cern.ch
classifiers =
Environment :: Plugins
Environment :: Web Environment
License :: OSI Approved :: MIT License
Programming Language :: Python :: 3.12
[options]
packages = find:
zip_safe = false
include_package_data = true
python_requires = >=3.12.2, <3.13
install_requires =
indico>=3.3
[options.entry_points]
indico.plugins =
cloud_captchas = indico_cloud_captchas.plugin:CloudCaptchasPlugin
[pydocstyle]
ignore = D100,D101,D102,D103,D104,D105,D107,D203,D213

View File

@ -1,11 +0,0 @@
# This file is part of the Indico plugins.
# Copyright (C) 2002 - 2024 CERN
#
# The Indico plugins are free software; you can redistribute
# them and/or modify them under the terms of the MIT License;
# see the LICENSE file for more details.
from setuptools import setup
setup()

58
hatch_build.py Normal file
View File

@ -0,0 +1,58 @@
# This file is part of the Indico plugins.
# Copyright (C) 2002 - 2024 CERN
#
# The Indico plugins are free software; you can redistribute
# them and/or modify them under the terms of the MIT License;
# see the LICENSE file for more details.
import json
import os
import subprocess
from contextlib import contextmanager
from pathlib import Path
from hatchling.builders.hooks.plugin.interface import BuildHookInterface
class CustomBuildHook(BuildHookInterface):
def initialize(self, version, build_data):
if os.environ.get('READTHEDOCS') == 'True' or version == 'editable':
return
if translations_dir := next(Path().glob('indico_*/translations/'), None):
_compile_languages(translations_dir)
_compile_languages_react(translations_dir)
def _compile_languages(translations_dir: Path):
from babel.messages.frontend import CompileCatalog
if not any(translations_dir.glob('**/*.po')):
return
cmd = CompileCatalog()
cmd.directory = translations_dir
cmd.finalize_options()
cmd.use_fuzzy = True
cmd.run()
def _compile_languages_react(translations_dir: Path):
# we assume a ..../indico/{src,plugins/whatever}/ structure for indico and plugin repos
indico_root = Path('../../../src/').absolute().resolve()
for subdir in translations_dir.absolute().iterdir():
po_file = subdir / 'LC_MESSAGES' / 'messages-react.po'
json_file = subdir / 'LC_MESSAGES' / 'messages-react.json'
if not po_file.exists():
continue
with _chdir(indico_root):
output = subprocess.check_output(['npx', 'react-jsx-i18n', 'compile', po_file], stderr=subprocess.DEVNULL)
json.loads(output) # just to be sure the JSON is valid
json_file.write_bytes(output)
@contextmanager
def _chdir(path: Path):
old_path = Path.cwd()
os.chdir(path)
try:
yield
finally:
os.chdir(old_path)

View File

@ -1,6 +0,0 @@
graft indico_livesync/migrations
graft indico_livesync/static
graft indico_livesync/templates
graft indico_livesync/translations
global-exclude *.pyc __pycache__ .keep

47
livesync/pyproject.toml Normal file
View File

@ -0,0 +1,47 @@
[project]
name = 'indico-plugin-livesync'
description = 'Legacy themes for Indico'
readme = 'README.md'
version = '3.3'
license = 'MIT'
authors = [{ name = 'Indico Team', email = 'indico-team@cern.ch' }]
classifiers = [
'Environment :: Plugins',
'Environment :: Web Environment',
'License :: OSI Approved :: MIT License',
'Programming Language :: Python :: 3.12',
]
requires-python = '>=3.12.2, <3.13'
dependencies = ['indico>=3.3']
[project.urls]
GitHub = 'https://github.com/indico/indico-plugins'
[project.entry-points.'indico.plugins']
livesync = 'indico_livesync.plugin:LiveSyncPlugin'
[build-system]
requires = ['hatchling==1.25.0']
build-backend = 'hatchling.build'
[tool.hatch.build]
packages = ['indico_livesync']
exclude = [
'*.no-header',
'.keep',
# exclude original client sources (they are all included in source maps anyway)
'indico_*/client/',
# no need for tests outside development
'test_snapshots/',
'tests/',
'*_test.py',
]
artifacts = [
'indico_*/translations/**/messages-react.json',
'indico_*/translations/**/*.mo',
'indico_*/static/dist/',
]
[tool.hatch.build.targets.sdist.hooks.custom]
path = '../hatch_build.py'
dependencies = ['babel==2.14.0']

View File

@ -1,32 +0,0 @@
[metadata]
name = indico-plugin-livesync
version = 3.3
description = Framework for pushing Indico event data to external services
long_description = file: README.md
long_description_content_type = text/markdown; charset=UTF-8; variant=GFM
url = https://github.com/indico/indico-plugins
license = MIT
author = Indico Team
author_email = indico-team@cern.ch
classifiers =
Environment :: Plugins
Environment :: Web Environment
License :: OSI Approved :: MIT License
Programming Language :: Python :: 3.12
[options]
packages = find:
zip_safe = false
include_package_data = true
python_requires = >=3.12.2, <3.13
install_requires =
indico>=3.3
[options.entry_points]
indico.plugins =
livesync = indico_livesync.plugin:LiveSyncPlugin
[pydocstyle]
ignore = D100,D101,D102,D103,D104,D105,D107,D203,D213

View File

@ -1,11 +0,0 @@
# This file is part of the Indico plugins.
# Copyright (C) 2002 - 2024 CERN
#
# The Indico plugins are free software; you can redistribute
# them and/or modify them under the terms of the MIT License;
# see the LICENSE file for more details.
from setuptools import setup
setup()

View File

@ -0,0 +1,47 @@
[project]
name = 'indico-plugin-livesync-debug'
description = 'Debug target for the Indico LiveSync plugin'
readme = 'README.md'
version = '3.3'
license = 'MIT'
authors = [{ name = 'Indico Team', email = 'indico-team@cern.ch' }]
classifiers = [
'Environment :: Plugins',
'Environment :: Web Environment',
'License :: OSI Approved :: MIT License',
'Programming Language :: Python :: 3.12',
]
requires-python = '>=3.12.2, <3.13'
dependencies = ['indico>=3.3', 'indico-plugin-livesync>=3.3.dev0']
[project.urls]
GitHub = 'https://github.com/indico/indico-plugins'
[project.entry-points.'indico.plugins']
livesync_debug = 'indico_livesync_debug.plugin:LiveSyncDebugPlugin'
[build-system]
requires = ['hatchling==1.25.0']
build-backend = 'hatchling.build'
[tool.hatch.build]
packages = ['indico_livesync_debug']
exclude = [
'*.no-header',
'.keep',
# exclude original client sources (they are all included in source maps anyway)
'indico_*/client/',
# no need for tests outside development
'test_snapshots/',
'tests/',
'*_test.py',
]
artifacts = [
'indico_*/translations/**/messages-react.json',
'indico_*/translations/**/*.mo',
'indico_*/static/dist/',
]
[tool.hatch.build.targets.sdist.hooks.custom]
path = '../hatch_build.py'
dependencies = ['babel==2.14.0']

View File

@ -1,33 +0,0 @@
[metadata]
name = indico-plugin-livesync-debug
version = 3.3
description = Debug target for the Indico LiveSync plugin
long_description = file: README.md
long_description_content_type = text/markdown; charset=UTF-8; variant=GFM
url = https://github.com/indico/indico-plugins
license = MIT
author = Indico Team
author_email = indico-team@cern.ch
classifiers =
Environment :: Plugins
Environment :: Web Environment
License :: OSI Approved :: MIT License
Programming Language :: Python :: 3.12
[options]
packages = find:
zip_safe = false
include_package_data = true
python_requires = >=3.12.2, <3.13
install_requires =
indico>=3.3
indico-plugin-livesync>=3.3.dev0
[options.entry_points]
indico.plugins =
livesync_debug = indico_livesync_debug.plugin:LiveSyncDebugPlugin
[pydocstyle]
ignore = D100,D101,D102,D103,D104,D105,D107,D203,D213

View File

@ -1,11 +0,0 @@
# This file is part of the Indico plugins.
# Copyright (C) 2002 - 2024 CERN
#
# The Indico plugins are free software; you can redistribute
# them and/or modify them under the terms of the MIT License;
# see the LICENSE file for more details.
from setuptools import setup
setup()

View File

@ -15,7 +15,7 @@ fi
ACTION="$1"
LOCALE="$2"
PLUGINS=$(find . -name setup.py -exec sh -c 'basename $(dirname $0)' {} \;)
PLUGINS=$(find . -name pyproject.toml -exec sh -c 'basename $(dirname $0)' {} \;)
if [[ "$ACTION" == "extract" ]]; then
PLUGINSINPARAMS=${@:2}

View File

@ -1,6 +0,0 @@
graft indico_owncloud/client
graft indico_owncloud/static
graft indico_owncloud/templates
graft indico_owncloud/translations
global-exclude *.pyc __pycache__ .keep

47
owncloud/pyproject.toml Normal file
View File

@ -0,0 +1,47 @@
[project]
name = 'indico-plugin-owncloud'
description = 'Integrates ownCloud storage as a source for materials'
readme = 'README.md'
version = '3.3'
license = 'MIT'
authors = [{ name = 'Indico Team', email = 'indico-team@cern.ch' }]
classifiers = [
'Environment :: Plugins',
'Environment :: Web Environment',
'License :: OSI Approved :: MIT License',
'Programming Language :: Python :: 3.12',
]
requires-python = '>=3.12.2, <3.13'
dependencies = ['indico>=3.3']
[project.urls]
GitHub = 'https://github.com/indico/indico-plugins'
[project.entry-points.'indico.plugins']
owncloud = 'indico_owncloud.plugin:OwncloudPlugin'
[build-system]
requires = ['hatchling==1.25.0']
build-backend = 'hatchling.build'
[tool.hatch.build]
packages = ['indico_owncloud']
exclude = [
'*.no-header',
'.keep',
# exclude original client sources (they are all included in source maps anyway)
'indico_*/client/',
# no need for tests outside development
'test_snapshots/',
'tests/',
'*_test.py',
]
artifacts = [
'indico_*/translations/**/messages-react.json',
'indico_*/translations/**/*.mo',
'indico_*/static/dist/',
]
[tool.hatch.build.targets.sdist.hooks.custom]
path = '../hatch_build.py'
dependencies = ['babel==2.14.0']

View File

@ -1,30 +0,0 @@
[metadata]
name = indico-plugin-owncloud
version = 3.3
description = Integrates ownCloud storage as a source for materials
long_description = file: README.md
long_description_content_type = text/markdown; charset=UTF-8; variant=GFM
url = https://github.com/indico/indico-plugins
license = MIT
author = Indico Team
author_email = indico-team@cern.ch
classifiers =
Environment :: Plugins
Environment :: Web Environment
License :: OSI Approved :: MIT License
Programming Language :: Python :: 3.12
[options]
packages = find:
zip_safe = false
include_package_data = true
python_requires = >=3.12.2, <3.13
install_requires =
indico>=3.3
[options.entry_points]
indico.plugins =
owncloud = indico_owncloud.plugin:OwncloudPlugin
[pydocstyle]
ignore = D100,D101,D102,D103,D104,D105,D107,D203,D213

View File

@ -1,11 +0,0 @@
# This file is part of the Indico plugins.
# Copyright (C) 2002 - 2024 CERN
#
# The Indico plugins are free software; you can redistribute
# them and/or modify them under the terms of the MIT License;
# see the LICENSE file for more details.
from setuptools import setup
setup()

View File

@ -1,5 +0,0 @@
graft indico_payment_manual/static
graft indico_payment_manual/templates
graft indico_payment_manual/translations
global-exclude *.pyc __pycache__ .keep

View File

@ -0,0 +1,47 @@
[project]
name = 'indico-plugin-payment-manual'
description = 'Payment plugin for Indico that can be used for custom payment information/links'
readme = 'README.md'
version = '3.3'
license = 'MIT'
authors = [{ name = 'Indico Team', email = 'indico-team@cern.ch' }]
classifiers = [
'Environment :: Plugins',
'Environment :: Web Environment',
'License :: OSI Approved :: MIT License',
'Programming Language :: Python :: 3.12',
]
requires-python = '>=3.12.2, <3.13'
dependencies = ['indico>=3.3']
[project.urls]
GitHub = 'https://github.com/indico/indico-plugins'
[project.entry-points.'indico.plugins']
payment_manual = 'indico_payment_manual.plugin:ManualPaymentPlugin'
[build-system]
requires = ['hatchling==1.25.0']
build-backend = 'hatchling.build'
[tool.hatch.build]
packages = ['indico_payment_manual']
exclude = [
'*.no-header',
'.keep',
# exclude original client sources (they are all included in source maps anyway)
'indico_*/client/',
# no need for tests outside development
'test_snapshots/',
'tests/',
'*_test.py',
]
artifacts = [
'indico_*/translations/**/messages-react.json',
'indico_*/translations/**/*.mo',
'indico_*/static/dist/',
]
[tool.hatch.build.targets.sdist.hooks.custom]
path = '../hatch_build.py'
dependencies = ['babel==2.14.0']

View File

@ -1,32 +0,0 @@
[metadata]
name = indico-plugin-payment-manual
version = 3.3
description = Payment plugin for Indico that can be used for custom payment information/links
long_description = file: README.md
long_description_content_type = text/markdown; charset=UTF-8; variant=GFM
url = https://github.com/indico/indico-plugins
license = MIT
author = Indico Team
author_email = indico-team@cern.ch
classifiers =
Environment :: Plugins
Environment :: Web Environment
License :: OSI Approved :: MIT License
Programming Language :: Python :: 3.12
[options]
packages = find:
zip_safe = false
include_package_data = true
python_requires = >=3.12.2, <3.13
install_requires =
indico>=3.3
[options.entry_points]
indico.plugins =
payment_manual = indico_payment_manual.plugin:ManualPaymentPlugin
[pydocstyle]
ignore = D100,D101,D102,D103,D104,D105,D107,D203,D213

View File

@ -1,11 +0,0 @@
# This file is part of the Indico plugins.
# Copyright (C) 2002 - 2024 CERN
#
# The Indico plugins are free software; you can redistribute
# them and/or modify them under the terms of the MIT License;
# see the LICENSE file for more details.
from setuptools import setup
setup()

View File

@ -1,5 +0,0 @@
graft indico_payment_paypal/static
graft indico_payment_paypal/templates
graft indico_payment_paypal/translations
global-exclude *.pyc __pycache__ .keep

View File

@ -0,0 +1,47 @@
[project]
name = 'indico-plugin-payment-paypal'
description = 'PayPal payments for Indico event registration fees'
readme = 'README.md'
version = '3.3'
license = 'MIT'
authors = [{ name = 'Indico Team', email = 'indico-team@cern.ch' }]
classifiers = [
'Environment :: Plugins',
'Environment :: Web Environment',
'License :: OSI Approved :: MIT License',
'Programming Language :: Python :: 3.12',
]
requires-python = '>=3.12.2, <3.13'
dependencies = ['indico>=3.3']
[project.urls]
GitHub = 'https://github.com/indico/indico-plugins'
[project.entry-points.'indico.plugins']
payment_paypal = 'indico_payment_paypal.plugin:PaypalPaymentPlugin'
[build-system]
requires = ['hatchling==1.25.0']
build-backend = 'hatchling.build'
[tool.hatch.build]
packages = ['indico_payment_paypal']
exclude = [
'*.no-header',
'.keep',
# exclude original client sources (they are all included in source maps anyway)
'indico_*/client/',
# no need for tests outside development
'test_snapshots/',
'tests/',
'*_test.py',
]
artifacts = [
'indico_*/translations/**/messages-react.json',
'indico_*/translations/**/*.mo',
'indico_*/static/dist/',
]
[tool.hatch.build.targets.sdist.hooks.custom]
path = '../hatch_build.py'
dependencies = ['babel==2.14.0']

View File

@ -1,32 +0,0 @@
[metadata]
name = indico-plugin-payment-paypal
version = 3.3
description = PayPal payments for Indico event registration fees
long_description = file: README.md
long_description_content_type = text/markdown; charset=UTF-8; variant=GFM
url = https://github.com/indico/indico-plugins
license = MIT
author = Indico Team
author_email = indico-team@cern.ch
classifiers =
Environment :: Plugins
Environment :: Web Environment
License :: OSI Approved :: MIT License
Programming Language :: Python :: 3.12
[options]
packages = find:
zip_safe = false
include_package_data = true
python_requires = >=3.12.2, <3.13
install_requires =
indico>=3.3
[options.entry_points]
indico.plugins =
payment_paypal = indico_payment_paypal.plugin:PaypalPaymentPlugin
[pydocstyle]
ignore = D100,D101,D102,D103,D104,D105,D107,D203,D213

View File

@ -1,11 +0,0 @@
# This file is part of the Indico plugins.
# Copyright (C) 2002 - 2024 CERN
#
# The Indico plugins are free software; you can redistribute
# them and/or modify them under the terms of the MIT License;
# see the LICENSE file for more details.
from setuptools import setup
setup()

View File

@ -1,4 +0,0 @@
graft indico_payment_sixpay/templates
graft indico_payment_sixpay/translations
global-exclude *.pyc __pycache__ .keep

View File

@ -0,0 +1,51 @@
[project]
name = 'indico-plugin-payment-sixpay'
description = 'SIXPay/Saferpay payments for Indico event registration fees'
readme = 'README.md'
version = '3.3'
license = 'MIT'
authors = [
{ name = 'Indico Team', email = 'indico-team@cern.ch' },
{ name = 'Max Fischer', email = 'maxfischer2781@gmail.com' },
{ name = 'Martin Claus', email = 'mclaus@geomar.de' },
]
classifiers = [
'Environment :: Plugins',
'Environment :: Web Environment',
'License :: OSI Approved :: MIT License',
'Programming Language :: Python :: 3.12',
]
requires-python = '>=3.12.2, <3.13'
dependencies = ['indico>=3.3', 'iso4217==1.6.20180829']
[project.urls]
GitHub = 'https://github.com/indico/indico-plugins'
[project.entry-points.'indico.plugins']
payment_sixpay = 'indico_payment_sixpay.plugin:SixpayPaymentPlugin'
[build-system]
requires = ['hatchling==1.25.0']
build-backend = 'hatchling.build'
[tool.hatch.build]
packages = ['indico_payment_sixpay']
exclude = [
'*.no-header',
'.keep',
# exclude original client sources (they are all included in source maps anyway)
'indico_*/client/',
# no need for tests outside development
'test_snapshots/',
'tests/',
'*_test.py',
]
artifacts = [
'indico_*/translations/**/messages-react.json',
'indico_*/translations/**/*.mo',
'indico_*/static/dist/',
]
[tool.hatch.build.targets.sdist.hooks.custom]
path = '../hatch_build.py'
dependencies = ['babel==2.14.0']

View File

@ -1,33 +0,0 @@
[metadata]
name = indico-plugin-payment-sixpay
version = 3.3
description = SIXPay/Saferpay payments for Indico event registration fees
long_description = file: README.md
long_description_content_type = text/markdown; charset=UTF-8; variant=GFM
url = https://github.com/indico/indico-plugins
license = MIT
author = Max Fischer, Martin Claus and Indico Team (CERN)
author_email = indico-team@cern.ch
classifiers =
Environment :: Plugins
Environment :: Web Environment
License :: OSI Approved :: MIT License
Programming Language :: Python :: 3.12
[options]
packages = find:
zip_safe = false
include_package_data = true
python_requires = >=3.12.2, <3.13
install_requires =
indico>=3.3
iso4217==1.6.20180829
[options.entry_points]
indico.plugins =
payment_sixpay = indico_payment_sixpay.plugin:SixpayPaymentPlugin
[pydocstyle]
ignore = D100,D101,D102,D103,D104,D105,D107,D203,D213

View File

@ -1,11 +0,0 @@
# This file is part of the Indico plugins.
# Copyright (C) 2017 - 2024 Max Fischer, Martin Claus, CERN
#
# The Indico plugins are free software; you can redistribute
# them and/or modify them under the terms of the MIT License;
# see the LICENSE file for more details.
from setuptools import setup
setup()

View File

@ -1,5 +0,0 @@
graft indico_piwik/static
graft indico_piwik/templates
graft indico_piwik/translations
global-exclude *.pyc __pycache__ .keep

47
piwik/pyproject.toml Normal file
View File

@ -0,0 +1,47 @@
[project]
name = 'indico-plugin-piwik'
description = 'Piwik integration for global and event-specific statistics in Indico'
readme = 'README.md'
version = '3.3'
license = 'MIT'
authors = [{ name = 'Indico Team', email = 'indico-team@cern.ch' }]
classifiers = [
'Environment :: Plugins',
'Environment :: Web Environment',
'License :: OSI Approved :: MIT License',
'Programming Language :: Python :: 3.12',
]
requires-python = '>=3.12.2, <3.13'
dependencies = ['indico>=3.3']
[project.urls]
GitHub = 'https://github.com/indico/indico-plugins'
[project.entry-points.'indico.plugins']
piwik = 'indico_piwik.plugin:PiwikPlugin'
[build-system]
requires = ['hatchling==1.25.0']
build-backend = 'hatchling.build'
[tool.hatch.build]
packages = ['indico_piwik']
exclude = [
'*.no-header',
'.keep',
# exclude original client sources (they are all included in source maps anyway)
'indico_*/client/',
# no need for tests outside development
'test_snapshots/',
'tests/',
'*_test.py',
]
artifacts = [
'indico_*/translations/**/messages-react.json',
'indico_*/translations/**/*.mo',
'indico_*/static/dist/',
]
[tool.hatch.build.targets.sdist.hooks.custom]
path = '../hatch_build.py'
dependencies = ['babel==2.14.0']

View File

@ -1,32 +0,0 @@
[metadata]
name = indico-plugin-piwik
version = 3.3
description = Piwik integration for global and event-specific statistics in Indico
long_description = file: README.md
long_description_content_type = text/markdown; charset=UTF-8; variant=GFM
url = https://github.com/indico/indico-plugins
license = MIT
author = Indico Team
author_email = indico-team@cern.ch
classifiers =
Environment :: Plugins
Environment :: Web Environment
License :: OSI Approved :: MIT License
Programming Language :: Python :: 3.12
[options]
packages = find:
zip_safe = false
include_package_data = true
python_requires = >=3.12.2, <3.13
install_requires =
indico>=3.3
[options.entry_points]
indico.plugins =
piwik = indico_piwik.plugin:PiwikPlugin
[pydocstyle]
ignore = D100,D101,D102,D103,D104,D105,D107,D203,D213

View File

@ -1,11 +0,0 @@
# This file is part of the Indico plugins.
# Copyright (C) 2002 - 2024 CERN
#
# The Indico plugins are free software; you can redistribute
# them and/or modify them under the terms of the MIT License;
# see the LICENSE file for more details.
from setuptools import setup
setup()

View File

@ -1,3 +0,0 @@
graft indico_previewer_code/templates
global-exclude *.pyc __pycache__ .keep

View File

@ -0,0 +1,47 @@
[project]
name = 'indico-plugin-previewer-code'
description = 'Syntax highlighter for code attachments in Indico'
readme = 'README.md'
version = '3.3'
license = 'MIT'
authors = [{ name = 'Indico Team', email = 'indico-team@cern.ch' }]
classifiers = [
'Environment :: Plugins',
'Environment :: Web Environment',
'License :: OSI Approved :: MIT License',
'Programming Language :: Python :: 3.12',
]
requires-python = '>=3.12.2, <3.13'
dependencies = ['indico>=3.3', 'pygments>=2.7.2,<3']
[project.urls]
GitHub = 'https://github.com/indico/indico-plugins'
[project.entry-points.'indico.plugins']
previewer_code = 'indico_previewer_code:CodePreviewerPlugin'
[build-system]
requires = ['hatchling==1.25.0']
build-backend = 'hatchling.build'
[tool.hatch.build]
packages = ['indico_previewer_code']
exclude = [
'*.no-header',
'.keep',
# exclude original client sources (they are all included in source maps anyway)
'indico_*/client/',
# no need for tests outside development
'test_snapshots/',
'tests/',
'*_test.py',
]
artifacts = [
'indico_*/translations/**/messages-react.json',
'indico_*/translations/**/*.mo',
'indico_*/static/dist/',
]
[tool.hatch.build.targets.sdist.hooks.custom]
path = '../hatch_build.py'
dependencies = ['babel==2.14.0']

View File

@ -1,33 +0,0 @@
[metadata]
name = indico-plugin-previewer-code
version = 3.3
description = Syntax highlighter for code attachments in Indico
long_description = file: README.md
long_description_content_type = text/markdown; charset=UTF-8; variant=GFM
url = https://github.com/indico/indico-plugins
license = MIT
author = Indico Team
author_email = indico-team@cern.ch
classifiers =
Environment :: Plugins
Environment :: Web Environment
License :: OSI Approved :: MIT License
Programming Language :: Python :: 3.12
[options]
packages = find:
zip_safe = false
include_package_data = true
python_requires = >=3.12.2, <3.13
install_requires =
indico>=3.3
Pygments>=2.7.2,<3
[options.entry_points]
indico.plugins =
previewer_code = indico_previewer_code:CodePreviewerPlugin
[pydocstyle]
ignore = D100,D101,D102,D103,D104,D105,D107,D203,D213

View File

@ -1,11 +0,0 @@
# This file is part of the Indico plugins.
# Copyright (C) 2002 - 2024 CERN
#
# The Indico plugins are free software; you can redistribute
# them and/or modify them under the terms of the MIT License;
# see the LICENSE file for more details.
from setuptools import setup
setup()

View File

@ -1,5 +0,0 @@
graft indico_previewer_jupyter/client
graft indico_previewer_jupyter/static
graft indico_previewer_jupyter/templates
global-exclude *.pyc __pycache__ .keep

View File

@ -0,0 +1,47 @@
[project]
name = 'indico-plugin-previewer-jupyter'
description = 'Jupyter notebook rendering for attachments in Indico'
readme = 'README.md'
version = '3.3'
license = 'MIT'
authors = [{ name = 'Indico Team', email = 'indico-team@cern.ch' }]
classifiers = [
'Environment :: Plugins',
'Environment :: Web Environment',
'License :: OSI Approved :: MIT License',
'Programming Language :: Python :: 3.12',
]
requires-python = '>=3.12.2, <3.13'
dependencies = ['indico>=3.3', 'nbconvert==6.5.0']
[project.urls]
GitHub = 'https://github.com/indico/indico-plugins'
[project.entry-points.'indico.plugins']
previewer_jupyter = 'indico_previewer_jupyter:JupyterPreviewerPlugin'
[build-system]
requires = ['hatchling==1.25.0']
build-backend = 'hatchling.build'
[tool.hatch.build]
packages = ['indico_previewer_jupyter']
exclude = [
'*.no-header',
'.keep',
# exclude original client sources (they are all included in source maps anyway)
'indico_*/client/',
# no need for tests outside development
'test_snapshots/',
'tests/',
'*_test.py',
]
artifacts = [
'indico_*/translations/**/messages-react.json',
'indico_*/translations/**/*.mo',
'indico_*/static/dist/',
]
[tool.hatch.build.targets.sdist.hooks.custom]
path = '../hatch_build.py'
dependencies = ['babel==2.14.0']

View File

@ -1,33 +0,0 @@
[metadata]
name = indico-plugin-previewer-jupyter
version = 3.3
description = Jupyter notebook rendering for attachments in Indico
long_description = file: README.md
long_description_content_type = text/markdown; charset=UTF-8; variant=GFM
url = https://github.com/indico/indico-plugins
license = MIT
author = Indico Team
author_email = indico-team@cern.ch
classifiers =
Environment :: Plugins
Environment :: Web Environment
License :: OSI Approved :: MIT License
Programming Language :: Python :: 3.12
[options]
packages = find:
zip_safe = false
include_package_data = true
python_requires = >=3.12.2, <3.13
install_requires =
indico>=3.3
nbconvert==6.5.0
[options.entry_points]
indico.plugins =
previewer_jupyter = indico_previewer_jupyter:JupyterPreviewerPlugin
[pydocstyle]
ignore = D100,D101,D102,D103,D104,D105,D107,D203,D213

View File

@ -1,11 +0,0 @@
# This file is part of the Indico plugins.
# Copyright (C) 2002 - 2024 CERN
#
# The Indico plugins are free software; you can redistribute
# them and/or modify them under the terms of the MIT License;
# see the LICENSE file for more details.
from setuptools import setup
setup()

47
prometheus/pyproject.toml Normal file
View File

@ -0,0 +1,47 @@
[project]
name = 'indico-plugin-prometheus'
description = 'Prometheus metrics in Indico servers'
readme = 'README.md'
version = '3.3'
license = 'MIT'
authors = [{ name = 'Indico Team', email = 'indico-team@cern.ch' }]
classifiers = [
'Environment :: Plugins',
'Environment :: Web Environment',
'License :: OSI Approved :: MIT License',
'Programming Language :: Python :: 3.12',
]
requires-python = '>=3.12.2, <3.13'
dependencies = ['indico>=3.3', 'prometheus-client==0.17.1']
[project.urls]
GitHub = 'https://github.com/indico/indico-plugins'
[project.entry-points.'indico.plugins']
prometheus = 'indico_prometheus.plugin:PrometheusPlugin'
[build-system]
requires = ['hatchling==1.25.0']
build-backend = 'hatchling.build'
[tool.hatch.build]
packages = ['indico_prometheus']
exclude = [
'*.no-header',
'.keep',
# exclude original client sources (they are all included in source maps anyway)
'indico_*/client/',
# no need for tests outside development
'test_snapshots/',
'tests/',
'*_test.py',
]
artifacts = [
'indico_*/translations/**/messages-react.json',
'indico_*/translations/**/*.mo',
'indico_*/static/dist/',
]
[tool.hatch.build.targets.sdist.hooks.custom]
path = '../hatch_build.py'
dependencies = ['babel==2.14.0']

View File

@ -1,31 +0,0 @@
[metadata]
name = indico-plugin-prometheus
version = 3.3
description = Prometheus metrics in Indico servers
long_description = file: README.md
long_description_content_type = text/markdown; charset=UTF-8; variant=GFM
url = https://github.com/indico/indico-plugins
license = MIT
author = Indico Team
author_email = indico-team@cern.ch
classifiers =
Environment :: Plugins
Environment :: Web Environment
License :: OSI Approved :: MIT License
Programming Language :: Python :: 3.12
[options]
packages = find:
zip_safe = false
include_package_data = true
python_requires = >=3.12.2, <3.13
install_requires =
indico>=3.3
prometheus-client==0.17.1
[options.entry_points]
indico.plugins =
prometheus = indico_prometheus.plugin:PrometheusPlugin
[pydocstyle]
ignore = D100,D101,D102,D103,D104,D105,D107,D203,D213

View File

@ -1,11 +0,0 @@
# This file is part of the Indico plugins.
# Copyright (C) 2002 - 2024 CERN
#
# The Indico plugins are free software; you can redistribute
# them and/or modify them under the terms of the MIT License;
# see the LICENSE file for more details.
from setuptools import setup
setup()

View File

@ -1,3 +0,0 @@
graft indico_storage_s3/translations
global-exclude *.pyc __pycache__ .keep

47
storage_s3/pyproject.toml Normal file
View File

@ -0,0 +1,47 @@
[project]
name = 'indico-plugin-storage-s3'
description = 'S3 storage backend for Indico'
readme = 'README.md'
version = '3.3'
license = 'MIT'
authors = [{ name = 'Indico Team', email = 'indico-team@cern.ch' }]
classifiers = [
'Environment :: Plugins',
'Environment :: Web Environment',
'License :: OSI Approved :: MIT License',
'Programming Language :: Python :: 3.12',
]
requires-python = '>=3.12.2, <3.13'
dependencies = ['indico>=3.3', 'boto3>=1.20.51,<2.0']
[project.urls]
GitHub = 'https://github.com/indico/indico-plugins'
[project.entry-points.'indico.plugins']
storage_s3 = 'indico_storage_s3.plugin:S3StoragePlugin'
[build-system]
requires = ['hatchling==1.25.0']
build-backend = 'hatchling.build'
[tool.hatch.build]
packages = ['indico_storage_s3']
exclude = [
'*.no-header',
'.keep',
# exclude original client sources (they are all included in source maps anyway)
'indico_*/client/',
# no need for tests outside development
'test_snapshots/',
'tests/',
'*_test.py',
]
artifacts = [
'indico_*/translations/**/messages-react.json',
'indico_*/translations/**/*.mo',
'indico_*/static/dist/',
]
[tool.hatch.build.targets.sdist.hooks.custom]
path = '../hatch_build.py'
dependencies = ['babel==2.14.0']

View File

@ -1,33 +0,0 @@
[metadata]
name = indico-plugin-storage-s3
version = 3.3
description = S3 storage backend for Indico
long_description = file: README.md
long_description_content_type = text/markdown; charset=UTF-8; variant=GFM
url = https://github.com/indico/indico-plugins
license = MIT
author = Indico Team
author_email = indico-team@cern.ch
classifiers =
Environment :: Plugins
Environment :: Web Environment
License :: OSI Approved :: MIT License
Programming Language :: Python :: 3.12
[options]
packages = find:
zip_safe = false
include_package_data = true
python_requires = >=3.12.2, <3.13
install_requires =
indico>=3.3
boto3>=1.20.51,<2.0
[options.entry_points]
indico.plugins =
storage_s3 = indico_storage_s3.plugin:S3StoragePlugin
[pydocstyle]
ignore = D100,D101,D102,D103,D104,D105,D107,D203,D213

View File

@ -1,11 +0,0 @@
# This file is part of the Indico plugins.
# Copyright (C) 2002 - 2024 CERN
#
# The Indico plugins are free software; you can redistribute
# them and/or modify them under the terms of the MIT License;
# see the LICENSE file for more details.
from setuptools import setup
setup()

View File

@ -1,7 +0,0 @@
graft indico_themes_legacy/static
graft indico_themes_legacy/templates
graft indico_themes_legacy/themes
graft indico_themes_legacy/translations
recursive-include indico_themes_legacy *.yaml
global-exclude *.pyc __pycache__ .keep

View File

@ -0,0 +1,47 @@
[project]
name = 'indico-plugin-themes-legacy'
description = 'Framework for pushing Indico event data to external services'
readme = 'README.md'
version = '3.3'
license = 'MIT'
authors = [{ name = 'Indico Team', email = 'indico-team@cern.ch' }]
classifiers = [
'Environment :: Plugins',
'Environment :: Web Environment',
'License :: OSI Approved :: MIT License',
'Programming Language :: Python :: 3.12',
]
requires-python = '>=3.12.2, <3.13'
dependencies = ['indico>=3.3']
[project.urls]
GitHub = 'https://github.com/indico/indico-plugins'
[project.entry-points.'indico.plugins']
themes_legacy = 'indico_themes_legacy.plugin:LegacyThemesPlugin'
[build-system]
requires = ['hatchling==1.25.0']
build-backend = 'hatchling.build'
[tool.hatch.build]
packages = ['indico_themes_legacy']
exclude = [
'*.no-header',
'.keep',
# exclude original client sources (they are all included in source maps anyway)
'indico_*/client/',
# no need for tests outside development
'test_snapshots/',
'tests/',
'*_test.py',
]
artifacts = [
'indico_*/translations/**/messages-react.json',
'indico_*/translations/**/*.mo',
'indico_*/static/dist/',
]
[tool.hatch.build.targets.sdist.hooks.custom]
path = '../hatch_build.py'
dependencies = ['babel==2.14.0']

View File

@ -1,32 +0,0 @@
[metadata]
name = indico-plugin-themes-legacy
version = 3.3
description = Legacy themes for Indico
long_description = file: README.md
long_description_content_type = text/markdown; charset=UTF-8; variant=GFM
url = https://github.com/indico/indico-plugins
license = MIT
author = Indico Team
author_email = indico-team@cern.ch
classifiers =
Environment :: Plugins
Environment :: Web Environment
License :: OSI Approved :: MIT License
Programming Language :: Python :: 3.12
[options]
packages = find:
zip_safe = false
include_package_data = true
python_requires = >=3.12.2, <3.13
install_requires =
indico>=3.3
[options.entry_points]
indico.plugins =
themes_legacy = indico_themes_legacy.plugin:LegacyThemesPlugin
[pydocstyle]
ignore = D100,D101,D102,D103,D104,D105,D107,D203,D213

View File

@ -1,11 +0,0 @@
# This file is part of the Indico plugins.
# Copyright (C) 2002 - 2024 CERN
#
# The Indico plugins are free software; you can redistribute
# them and/or modify them under the terms of the MIT License;
# see the LICENSE file for more details.
from setuptools import setup
setup()

View File

@ -5,17 +5,20 @@
# them and/or modify them under the terms of the MIT License;
# see the LICENSE file for more details.
import difflib
import errno
import os
import re
import sys
from collections import defaultdict
from pathlib import Path
import click
import tomlkit
import yaml
from packaging.version import Version
from setuptools.config.setupcfg import read_configuration
from pygments import highlight
from pygments.formatters.terminal256 import Terminal256Formatter
from pygments.lexers.diff import DiffLexer
START_MARKER = '# BEGIN GENERATED REQUIREMENTS'
@ -24,12 +27,12 @@ END_MARKER = '# END GENERATED REQUIREMENTS'
def _find_plugins():
subdirs = sorted(Path(x) for x in next(os.walk('.'))[1]
if x[0] != '.' and x != '_meta' and os.path.exists(os.path.join(x, 'setup.cfg')))
if x[0] != '.' and x != '_meta' and os.path.exists(os.path.join(x, 'pyproject.toml')))
for subdir in subdirs:
path = subdir / 'setup.cfg'
metadata = read_configuration(path)['metadata']
name = metadata['name']
version = metadata['version']
path = subdir / 'pyproject.toml'
data = tomlkit.parse(path.read_text())
name = data['project']['name']
version = data['project']['version']
if name is None or version is None:
click.secho(f'Could not extract name/version from {path}', fg='red', bold=True)
continue
@ -50,14 +53,19 @@ def _get_config():
return rv
def _update_meta(data):
path = Path('_meta/setup.cfg')
content = path.read_text()
new_content = re.sub(fr'(?<={re.escape(START_MARKER)}\n).*(?=\n{re.escape(END_MARKER)})', data, content,
flags=re.DOTALL)
def _show_diff(old, new, filename):
diff = difflib.unified_diff(old.splitlines(), new.splitlines(), filename, filename, lineterm='')
diff = '\n'.join(diff)
print(highlight(diff, DiffLexer(), Terminal256Formatter(style='native')))
def _update_meta(pyproject: Path, data):
content = pyproject.read_text()
new_content = tomlkit.dumps(data)
if content == new_content:
return False
path.write_text(new_content)
_show_diff(content, new_content, pyproject.name)
pyproject.write_text(new_content)
return True
@ -84,16 +92,23 @@ def cli(nextver):
else:
plugins_require.append(pkgspec)
output = [f' {entry}' for entry in plugins_require]
if extras_require:
if output:
output.append('')
output.append('[options.extras_require]')
for extra, pkgspecs in sorted(extras_require.items()):
output.append(f'{extra} =')
output.extend(f' {pkg}' for pkg in sorted(pkgspecs))
pyproject = Path('_meta/pyproject.toml')
data = tomlkit.parse(pyproject.read_text())
data['project']['dependencies'] = [
*(x for x in data['project']['dependencies'] if not x.startswith('indico-plugin-')),
*(tomlkit.string(name, literal=True) for name in plugins_require)
]
data['project']['dependencies'].multiline(True)
if _update_meta('\n'.join(output)):
if extras_require:
optional_deps = tomlkit.table()
for extra, pkgspecs in sorted(extras_require.items()):
optional_deps[extra] = tomlkit.array(sorted(tomlkit.string(x, literal=True) for x in pkgspecs))
data['project']['optional-dependencies'] = optional_deps
else:
data['project'].pop('optional-dependencies', None)
if _update_meta(pyproject, data):
click.secho('Updated meta package', fg='green')
else:
click.secho('Meta package already up to date', fg='yellow')

View File

@ -1,5 +0,0 @@
graft indico_ursh/static
graft indico_ursh/translations
graft indico_ursh/templates
global-exclude *.pyc __pycache__ .keep

47
ursh/pyproject.toml Normal file
View File

@ -0,0 +1,47 @@
[project]
name = 'indico-plugin-ursh'
description = 'URL shortening service for Indico'
readme = 'README.md'
version = '3.3'
license = 'MIT'
authors = [{ name = 'Indico Team', email = 'indico-team@cern.ch' }]
classifiers = [
'Environment :: Plugins',
'Environment :: Web Environment',
'License :: OSI Approved :: MIT License',
'Programming Language :: Python :: 3.12',
]
requires-python = '>=3.12.2, <3.13'
dependencies = ['indico>=3.3']
[project.urls]
GitHub = 'https://github.com/indico/indico-plugins'
[project.entry-points.'indico.plugins']
ursh = 'indico_ursh.plugin:UrshPlugin'
[build-system]
requires = ['hatchling==1.25.0']
build-backend = 'hatchling.build'
[tool.hatch.build]
packages = ['indico_ursh']
exclude = [
'*.no-header',
'.keep',
# exclude original client sources (they are all included in source maps anyway)
'indico_*/client/',
# no need for tests outside development
'test_snapshots/',
'tests/',
'*_test.py',
]
artifacts = [
'indico_*/translations/**/messages-react.json',
'indico_*/translations/**/*.mo',
'indico_*/static/dist/',
]
[tool.hatch.build.targets.sdist.hooks.custom]
path = '../hatch_build.py'
dependencies = ['babel==2.14.0']

View File

@ -1,32 +0,0 @@
[metadata]
name = indico-plugin-ursh
version = 3.3
description = URL shortening service for Indico
long_description = file: README.md
long_description_content_type = text/markdown; charset=UTF-8; variant=GFM
url = https://github.com/indico/indico-plugins
license = MIT
author = Indico Team
author_email = indico-team@cern.ch
classifiers =
Environment :: Plugins
Environment :: Web Environment
License :: OSI Approved :: MIT License
Programming Language :: Python :: 3.12
[options]
packages = find:
zip_safe = false
include_package_data = true
python_requires = >=3.12.2, <3.13
install_requires =
indico>=3.3
[options.entry_points]
indico.plugins =
ursh = indico_ursh.plugin:UrshPlugin
[pydocstyle]
ignore = D100,D101,D102,D103,D104,D105,D107,D203,D213

View File

@ -1,11 +0,0 @@
# This file is part of the Indico plugins.
# Copyright (C) 2002 - 2024 CERN
#
# The Indico plugins are free software; you can redistribute
# them and/or modify them under the terms of the MIT License;
# see the LICENSE file for more details.
from setuptools import setup
setup()

View File

@ -1,5 +0,0 @@
graft indico_vc_dummy/static
graft indico_vc_dummy/templates
graft indico_vc_dummy/translations
global-exclude *.pyc __pycache__ .keep

47
vc_dummy/pyproject.toml Normal file
View File

@ -0,0 +1,47 @@
[project]
name = 'indico-plugin-vc-dummy'
description = 'Dummy/example video-conferencing plugin for Indico'
readme = 'README.md'
version = '3.3'
license = 'MIT'
authors = [{ name = 'Indico Team', email = 'indico-team@cern.ch' }]
classifiers = [
'Environment :: Plugins',
'Environment :: Web Environment',
'License :: OSI Approved :: MIT License',
'Programming Language :: Python :: 3.12',
]
requires-python = '>=3.12.2, <3.13'
dependencies = ['indico>=3.3']
[project.urls]
GitHub = 'https://github.com/indico/indico-plugins'
[project.entry-points.'indico.plugins']
vc_dummy = 'indico_vc_dummy.plugin:DummyPlugin'
[build-system]
requires = ['hatchling==1.25.0']
build-backend = 'hatchling.build'
[tool.hatch.build]
packages = ['indico_vc_dummy']
exclude = [
'*.no-header',
'.keep',
# exclude original client sources (they are all included in source maps anyway)
'indico_*/client/',
# no need for tests outside development
'test_snapshots/',
'tests/',
'*_test.py',
]
artifacts = [
'indico_*/translations/**/messages-react.json',
'indico_*/translations/**/*.mo',
'indico_*/static/dist/',
]
[tool.hatch.build.targets.sdist.hooks.custom]
path = '../hatch_build.py'
dependencies = ['babel==2.14.0']

View File

@ -1,32 +0,0 @@
[metadata]
name = indico-plugin-vc-dummy
version = 3.3
description = Dummy/example video-conferencing plugin for Indico
long_description = file: README.md
long_description_content_type = text/markdown; charset=UTF-8; variant=GFM
url = https://github.com/indico/indico-plugins
license = MIT
author = Indico Team
author_email = indico-team@cern.ch
classifiers =
Environment :: Plugins
Environment :: Web Environment
License :: OSI Approved :: MIT License
Programming Language :: Python :: 3.12
[options]
packages = find:
zip_safe = false
include_package_data = true
python_requires = >=3.12.2, <3.13
install_requires =
indico>=3.3
[options.entry_points]
indico.plugins =
vc_dummy = indico_vc_dummy.plugin:DummyPlugin
[pydocstyle]
ignore = D100,D101,D102,D103,D104,D105,D107,D203,D213

View File

@ -1,11 +0,0 @@
# This file is part of the Indico plugins.
# Copyright (C) 2002 - 2024 CERN
#
# The Indico plugins are free software; you can redistribute
# them and/or modify them under the terms of the MIT License;
# see the LICENSE file for more details.
from setuptools import setup
setup()

View File

@ -1,6 +0,0 @@
graft indico_vc_zoom/static
graft indico_vc_zoom/migrations
graft indico_vc_zoom/templates
graft indico_vc_zoom/translations
global-exclude *.pyc __pycache__ .keep

50
vc_zoom/pyproject.toml Normal file
View File

@ -0,0 +1,50 @@
[project]
name = 'indico-plugin-vc-zoom'
description = 'Zoom video-conferencing plugin for Indico'
readme = 'README.md'
version = '3.3'
license = 'MIT'
authors = [
{ name = 'Indico Team', email = 'indico-team@cern.ch' },
{ name = 'Giovanni Mariano (ENEA)' },
]
classifiers = [
'Environment :: Plugins',
'Environment :: Web Environment',
'License :: OSI Approved :: MIT License',
'Programming Language :: Python :: 3.12',
]
requires-python = '>=3.12.2, <3.13'
dependencies = ['indico>=3.3']
[project.urls]
GitHub = 'https://github.com/indico/indico-plugins'
[project.entry-points.'indico.plugins']
vc_zoom = 'indico_vc_zoom.plugin:ZoomPlugin'
[build-system]
requires = ['hatchling==1.25.0']
build-backend = 'hatchling.build'
[tool.hatch.build]
packages = ['indico_vc_zoom']
exclude = [
'*.no-header',
'.keep',
# exclude original client sources (they are all included in source maps anyway)
'indico_*/client/',
# no need for tests outside development
'test_snapshots/',
'tests/',
'*_test.py',
]
artifacts = [
'indico_*/translations/**/messages-react.json',
'indico_*/translations/**/*.mo',
'indico_*/static/dist/',
]
[tool.hatch.build.targets.sdist.hooks.custom]
path = '../hatch_build.py'
dependencies = ['babel==2.14.0']

View File

@ -1,32 +0,0 @@
[metadata]
name = indico-plugin-vc-zoom
version = 3.3
description = Zoom video-conferencing plugin for Indico
long_description = file: README.md
long_description_content_type = text/markdown; charset=UTF-8; variant=GFM
url = https://github.com/indico/indico-plugins
license = MIT
author = Giovanni Mariano (ENEA) and Indico Team (CERN)
author_email = indico-team@cern.ch
classifiers =
Environment :: Plugins
Environment :: Web Environment
License :: OSI Approved :: MIT License
Programming Language :: Python :: 3.12
[options]
packages = find:
zip_safe = false
include_package_data = true
python_requires = >=3.12.2, <3.13
install_requires =
indico>=3.3
[options.entry_points]
indico.plugins =
vc_zoom = indico_vc_zoom.plugin:ZoomPlugin
[pydocstyle]
ignore = D100,D101,D102,D103,D104,D105,D107,D203,D213

View File

@ -1,11 +0,0 @@
# This file is part of the Indico plugins.
# Copyright (C) 2020 - 2024 CERN and ENEA
#
# The Indico plugins are free software; you can redistribute
# them and/or modify them under the terms of the MIT License;
# see the LICENSE file for more details.
from setuptools import setup
setup()