--- requirements.txt
+++ requirements.txt
@@ -1,2 +1,2 @@
-websocket-client>=0.54.0
-pyee==8.1.0
\ No newline at end of file
+websocket-client
+pyee
\ No newline at end of file
--- setup.py
+++ setup.py
@@ -1,32 +1,8 @@
-# Copyright (c) 2018 Mycroft AI, Inc.
-#
-# This file is part of Mycroft Skills Manager
-# (see https://github.com/MatthewScholefield/mycroft-light).
-#
-# Licensed to the Apache Software Foundation (ASF) under one
-# or more contributor license agreements.  See the NOTICE file
-# distributed with this work for additional information
-# regarding copyright ownership.  The ASF licenses this file
-# to you 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
-#
-#   http://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.
 import os
 from setuptools import setup
-
-
-with open("README.md", "r") as fh:
+with open('README.md', 'r') as fh:
     long_desc = fh.read()

-
 def required(requirements_file):
     """ Read requirements file and remove comments and empty lines. """
     base_dir = os.path.abspath(os.path.dirname(__file__))
@@ -35,35 +11,5 @@
         if 'MYCROFT_LOOSE_REQUIREMENTS' in os.environ:
             print('USING LOOSE REQUIREMENTS!')
             requirements = [r.replace('==', '>=') for r in requirements]
-        return [pkg for pkg in requirements
-                if pkg.strip() and not pkg.startswith("#")]
-
-
-setup(
-    name='mycroft-messagebus-client',
-    version='0.10.1',
-    packages=['mycroft_bus_client', 'mycroft_bus_client.client',
-              'mycroft_bus_client.util'],
-    package_data={
-      '*': ['*.txt', '*.md']
-    },
-    include_package_data=True,
-    install_requires=required('requirements.txt'),
-    url='https://github.com/MycroftAI/mycroft-messagebus-client',
-    license='Apache-2.0',
-    author='Mycroft AI, Åke Forslund',
-    author_email='devs@mycroft.ai, ake.forslund@gmail.com',
-    description='Mycroft Messagebus Client',
-    long_description=long_desc,
-    long_description_content_type="text/markdown",
-    classifiers=[
-        'Development Status :: 4 - Beta',
-        'Intended Audience :: Developers',
-        'License :: OSI Approved :: Apache Software License',
-
-        'Programming Language :: Python :: 3.6',
-        'Programming Language :: Python :: 3.7',
-        'Programming Language :: Python :: 3.8',
-        'Programming Language :: Python :: 3.9',
-    ]
-)
+        return [pkg for pkg in requirements if pkg.strip() and (not pkg.startswith('#'))]
+setup(name='mycroft-messagebus-client', version='0.10.1', packages=['mycroft_bus_client', 'mycroft_bus_client.client', 'mycroft_bus_client.util'], package_data={'*': ['*.txt', '*.md']}, include_package_data=True, install_requires=required('requirements.txt'), url='https://github.com/MycroftAI/mycroft-messagebus-client', license='Apache-2.0', author='Mycroft AI, Åke Forslund', author_email='devs@mycroft.ai, ake.forslund@gmail.com', description='Mycroft Messagebus Client', long_description=long_desc, long_description_content_type='text/markdown', classifiers=['Development Status :: 4 - Beta', 'Intended Audience :: Developers', 'License :: OSI Approved :: Apache Software License', 'Programming Language :: Python :: 3.6', 'Programming Language :: Python :: 3.7', 'Programming Language :: Python :: 3.8', 'Programming Language :: Python :: 3.9'])
\ No newline at end of file
--- setup_MycroftAI__mycroft-messagebus-client.sh
+++ setup_MycroftAI__mycroft-messagebus-client.sh
@@ -0,0 +1,4 @@
+#!/bin/bash
+set -euo pipefail
+
+pip install -r requirements.txt
--- test_MycroftAI__mycroft-messagebus-client.sh
+++ test_MycroftAI__mycroft-messagebus-client.sh
@@ -0,0 +1,4 @@
+#!/bin/bash
+set -euo pipefail
+
+python -m unittest test.test_message

--- mycroft_bus_client/client/client.py
+++ mycroft_bus_client/client/client.py
@@ -25,7 +25,7 @@
 from threading import Event, Thread
 from uuid import uuid4

-from pyee import ExecutorEventEmitter
+from pyee.executor import ExecutorEventEmitter
 from websocket import (WebSocketApp,
                        WebSocketConnectionClosedException,
                        WebSocketException)

FROM mirror.gcr.io/python:3.12.11

ENV PIP_INDEX_URL=http://localhost:5000/snapshot/2025-07-31
ENV PIP_TRUSTED_HOST=localhost

WORKDIR /work

COPY MycroftAI__mycroft-messagebus-client .

RUN bash /work/setup_MycroftAI__mycroft-messagebus-client.sh

ENTRYPOINT ["bash"]
CMD ["/work/test_MycroftAI__mycroft-messagebus-client.sh"]


--- requirements.txt
+++ requirements.txt
@@ -1,2 +1,2 @@
-openpyxl>=2.6.3
-pytest==5.4.1
+openpyxl
+pytest
\ No newline at end of file
--- setup.py
+++ setup.py
@@ -1,34 +1,2 @@
 from setuptools import setup
-
-setup(
-    name="exceliser",
-    packages=["exceliser"],
-    version="0.0.3",
-    license="MIT",
-    description="Exceliser is a tool for helping you serialize your excel documents to json or deserialize json back to excel document.",
-    author="Srdjan Stankovic",
-    author_email="stankovic.srdjo@gmail.com",
-    url="https://github.com/pyropy/exceliser",
-    download_url="https://github.com/pyropy/exceliser/archive/0.0.2b.tar.gz",
-    keywords=[
-        "Excel",
-        "JSON",
-        "Excel to JSON",
-        "JSON to Excel",
-        "Serializer",
-        "Deserializer",
-    ],
-    install_requires=["pytest==5.4.1",
-                      "openpyxl>=2.6.3"
-                      ],
-    classifiers=[
-        "Development Status :: 3 - Alpha",
-        "Intended Audience :: Developers",
-        "Topic :: Software Development :: Build Tools",
-        "License :: OSI Approved :: MIT License",
-        "Programming Language :: Python :: 3",
-        "Programming Language :: Python :: 3.6",
-        "Programming Language :: Python :: 3.7",
-        "Programming Language :: Python :: 3.8",
-    ],
-)
+setup(name='exceliser', packages=['exceliser'], version='0.0.3', license='MIT', description='Exceliser is a tool for helping you serialize your excel documents to json or deserialize json back to excel document.', author='Srdjan Stankovic', author_email='stankovic.srdjo@gmail.com', url='https://github.com/pyropy/exceliser', download_url='https://github.com/pyropy/exceliser/archive/0.0.2b.tar.gz', keywords=['Excel', 'JSON', 'Excel to JSON', 'JSON to Excel', 'Serializer', 'Deserializer'], install_requires=['pytest', 'openpyxl'], classifiers=['Development Status :: 3 - Alpha', 'Intended Audience :: Developers', 'Topic :: Software Development :: Build Tools', 'License :: OSI Approved :: MIT License', 'Programming Language :: Python :: 3', 'Programming Language :: Python :: 3.6', 'Programming Language :: Python :: 3.7', 'Programming Language :: Python :: 3.8'])
\ No newline at end of file
--- setup_pyropy__exceliser.sh
+++ setup_pyropy__exceliser.sh
@@ -0,0 +1,5 @@
+#!/bin/bash
+set -euo pipefail
+
+pip install -r requirements.txt
+pip install pytest
--- test_pyropy__exceliser.sh
+++ test_pyropy__exceliser.sh
@@ -0,0 +1,4 @@
+#!/bin/bash
+set -euo pipefail
+
+python -m pytest .

--- exceliser/serializer.py
+++ exceliser/serializer.py
@@ -57,7 +57,7 @@
     @staticmethod
     def _attr_is_callable(_object: Any, attr: str) -> bool:
         try:
-            return isinstance(getattr(_object, attr), collections.Callable)
+            return isinstance(getattr(_object, attr), collections.abc.Callable)
         except NotImplementedError:
             return True

FROM mirror.gcr.io/python:3.12.11

ENV PIP_INDEX_URL=http://localhost:5000/snapshot/2025-07-31
ENV PIP_TRUSTED_HOST=localhost

WORKDIR /work

COPY pyropy__exceliser .

RUN bash /work/setup_pyropy__exceliser.sh

ENTRYPOINT ["bash"]
CMD ["/work/test_pyropy__exceliser.sh"]

et_xmlfile==2.0.0
iniconfig==2.1.0
openpyxl==3.1.5
packaging==25.0
pluggy==1.6.0
Pygments==2.19.2
pytest==8.4.1


--- setup.py
+++ setup.py
@@ -6,34 +6,4 @@
 url.
 """
 from setuptools import setup
-
-
-setup(
-    name='Flask-Rev',
-    version='0.1.2',
-    url='https://github.com/italomaia/flask-rev',
-    license='BSD',
-    author='Italo Maia',
-    author_email='italo.maia@gmail.com',
-    description='Easily integrate flask with revisioned static files',
-    long_description=__doc__,
-    py_modules=['flask_rev'],
-    # if you would be using a package instead use packages instead
-    # of py_modules:
-    # packages=['flask_rev'],
-    test_suite='tests.test_rev',
-    zip_safe=False,
-    platforms='any',
-    install_requires=[
-        'Flask'
-    ],
-    classifiers=[
-        'Environment :: Web Environment',
-        'Intended Audience :: Developers',
-        'License :: OSI Approved :: BSD License',
-        'Operating System :: OS Independent',
-        'Programming Language :: Python',
-        'Topic :: Internet :: WWW/HTTP :: Dynamic Content',
-        'Topic :: Software Development :: Libraries :: Python Modules'
-    ]
-)
+setup(name='Flask-Rev', version='0.1.2', url='https://github.com/italomaia/flask-rev', license='BSD', author='Italo Maia', author_email='italo.maia@gmail.com', description='Easily integrate flask with revisioned static files', long_description=__doc__, py_modules=['flask_rev'], test_suite='tests.test_rev', zip_safe=False, platforms='any', install_requires=['Flask'], classifiers=['Environment :: Web Environment', 'Intended Audience :: Developers', 'License :: OSI Approved :: BSD License', 'Operating System :: OS Independent', 'Programming Language :: Python', 'Topic :: Internet :: WWW/HTTP :: Dynamic Content', 'Topic :: Software Development :: Libraries :: Python Modules'])
\ No newline at end of file
--- setup_italomaia__flask-rev.sh
+++ setup_italomaia__flask-rev.sh
@@ -0,0 +1,4 @@
+#!/bin/bash
+set -euo pipefail
+
+pip install .
--- test_italomaia__flask-rev.sh
+++ test_italomaia__flask-rev.sh
@@ -0,0 +1,4 @@
+#!/bin/bash
+set -euo pipefail
+
+python -m unittest tests.test_rev

--- flask_rev.py
+++ flask_rev.py
@@ -6,7 +6,7 @@
     cached static files from the http server.
 """

-from flask.helpers import safe_join
+from werkzeug.utils import safe_join
 from flask import request
 import hashlib
 import contextlib

FROM mirror.gcr.io/python:3.12.11

ENV PIP_INDEX_URL=http://localhost:5000/snapshot/2025-07-31
ENV PIP_TRUSTED_HOST=localhost

WORKDIR /work

COPY italomaia__flask-rev .

RUN bash /work/setup_italomaia__flask-rev.sh

ENTRYPOINT ["bash"]
CMD ["/work/test_italomaia__flask-rev.sh"]

blinker==1.9.0
click==8.2.1
Flask==3.1.1
Flask-Rev @ file:///work
itsdangerous==2.2.0
Jinja2==3.1.6
MarkupSafe==3.0.2
Werkzeug==3.1.3


--- requirements.txt
+++ requirements.txt
@@ -1,10 +1,10 @@
-aiohttp==3.7.4.post0
-async-timeout==3.0.1
-attrs==21.2.0
-chardet==4.0.0
-discord.py==1.7.2
-idna==3.2
-multidict==5.1.0
-psycopg2==2.8.6
-typing-extensions==3.10.0.0
-yarl==1.6.3
+aiohttp
+async-timeout
+attrs
+chardet
+discord.py
+idna
+multidict
+psycopg2
+typing-extensions
+yarl
\ No newline at end of file
--- setup_erperreault__18xxgamesbot.sh
+++ setup_erperreault__18xxgamesbot.sh
@@ -0,0 +1,4 @@
+#!/bin/bash
+set -euo pipefail
+
+pip install -r requirements.txt
--- test_erperreault__18xxgamesbot.sh
+++ test_erperreault__18xxgamesbot.sh
@@ -0,0 +1,4 @@
+#!/bin/bash
+set -euo pipefail
+
+python -m unittest unit_tests

--- server.py
+++ server.py
@@ -10,7 +10,7 @@
 import discord
 import psycopg2

-client = discord.Client()
+client = discord.Client(intents=discord.Intents.default())
 postgres_url = os.getenv('DATABASE_URL')

 help_command = '!help'

FROM mirror.gcr.io/python:3.12.11

ENV PIP_INDEX_URL=http://localhost:5000/snapshot/2025-07-31
ENV PIP_TRUSTED_HOST=localhost

WORKDIR /work

COPY erperreault__18xxgamesbot .

RUN bash /work/setup_erperreault__18xxgamesbot.sh

ENTRYPOINT ["bash"]
CMD ["/work/test_erperreault__18xxgamesbot.sh"]

aiohappyeyeballs==2.6.1
aiohttp==3.12.15
aiosignal==1.4.0
async-timeout==5.0.1
attrs==25.3.0
chardet==5.2.0
discord.py==2.5.2
frozenlist==1.7.0
idna==3.10
multidict==6.6.3
propcache==0.3.2
psycopg2==2.9.10
typing_extensions==4.14.1
yarl==1.20.1


--- setup.py
+++ setup.py
@@ -1,36 +1,9 @@
 from setuptools import setup, find_packages
-
 __author__ = 'Abraham Othman'
 __copyright__ = 'Copyright 2018, Abraham Othman'
-
 __version__ = '1.6.0'
 __maintainer__ = 'Abraham Othman'
 __email__ = 'abrahamo@wharton.upenn.edu'
-
 long_description = open('README.md').read()
-
-install_requires = [
-  'numpy',
-  'cvxpy>=1.0.0',
-  'cvxopt'
-]
-
-setup(
-  name = 'hiscore',
-  version = __version__,
-  author = __maintainer__,
-  author_email = __email__,
-  packages = find_packages(),
-  description = 'A simple and powerful engine for creating scores',
-  long_description=long_description,
-  install_requires=install_requires,
-  url = 'https://github.com/aothman/hiscore', # use the URL to the github repo
-  keywords = [],
-  classifiers =[
-    'Development Status :: 5 - Production/Stable',
-    'Intended Audience :: Science/Research',
-    'License :: OSI Approved :: BSD License',
-    'Programming Language :: Python :: 2',
-    'Programming Language :: Python :: 3'
-  ]
-)
+install_requires = ['numpy', 'cvxpy', 'cvxopt']
+setup(name='hiscore', version=__version__, author=__maintainer__, author_email=__email__, packages=find_packages(), description='A simple and powerful engine for creating scores', long_description=long_description, install_requires=install_requires, url='https://github.com/aothman/hiscore', keywords=[], classifiers=['Development Status :: 5 - Production/Stable', 'Intended Audience :: Science/Research', 'License :: OSI Approved :: BSD License', 'Programming Language :: Python :: 2', 'Programming Language :: Python :: 3'])
\ No newline at end of file
--- setup_aothman__hiscore.sh
+++ setup_aothman__hiscore.sh
@@ -0,0 +1,5 @@
+#!/bin/bash
+set -euo pipefail
+
+pip install .
+pip install pytest
--- test_aothman__hiscore.sh
+++ test_aothman__hiscore.sh
@@ -0,0 +1,4 @@
+#!/bin/bash
+set -euo pipefail
+
+python -m pytest .

--- test_hiscore.py
+++ test_hiscore.py
@@ -70,10 +70,10 @@
 	def test_value_bounds_inf(self):
 		mydict = {(100,100,100): 50, (0,200,0): 50}
 		myfunc = create(mydict,[1,1,1])
-		self.assertEqual(myfunc.value_bounds((50,50,50)),(np.NINF,50))
+		self.assertEqual(myfunc.value_bounds((50,50,50)),(-np.inf,50))
 		myfunc = create(mydict,[-1,-1,-1])
 		self.assertEqual(myfunc.value_bounds((50,50,50)),(50,np.inf))
-		self.assertEqual(myfunc.value_bounds((200,0,50)),(np.NINF,np.inf))
+		self.assertEqual(myfunc.value_bounds((200,0,50)),(-np.inf,np.inf))

 	def test_pickling(self):
 		mydict = {(0,0): 0, (100,100): 100}

--- hiscore/engine.py
+++ hiscore/engine.py
@@ -151,7 +151,7 @@
     """
     Returns the (lower_bound, upper_bound) tuple of a point implied by the reference set and the monotone relationship vector.
     Use it to improve and understand the reference set without triggering a MonotoneError.
-    Returns np.inf as the second argument if there is no upper bound and np.NINF as the first argument if there is no lower bound.
+    Returns np.inf as the second argument if there is no upper bound and -np.inf as the first argument if there is no lower bound.

     Required argument:
     point -- Point at which to assess upper and lower bounds.
@@ -160,7 +160,7 @@
     points_greater_than = filter(lambda x: np.allclose(x,padj) or self.__monotone_rel__(x,padj)==1, self.points.keys())
     points_less_than = filter(lambda x: np.allclose(x,padj) or self.__monotone_rel__(padj,x)==1, self.points.keys())
     gtbound = np.inf if self.maxval is None else self.maxval
-    ltbound = np.NINF if self.minval is None else self.minval
+    ltbound = -np.inf if self.minval is None else self.minval
     for p in points_greater_than:
       gtbound = min(self.points[p],gtbound)
     for p in points_less_than:

FROM mirror.gcr.io/python:3.12.11

ENV PIP_INDEX_URL=http://localhost:5000/snapshot/2025-07-31
ENV PIP_TRUSTED_HOST=localhost

WORKDIR /work

COPY aothman__hiscore .

RUN bash /work/setup_aothman__hiscore.sh

ENTRYPOINT ["bash"]
CMD ["/work/test_aothman__hiscore.sh"]

cffi==1.17.1
clarabel==0.11.1
cvxopt==1.3.2
cvxpy==1.7.1
hiscore @ file:///work
iniconfig==2.1.0
Jinja2==3.1.6
joblib==1.5.1
MarkupSafe==3.0.2
numpy==2.3.2
osqp==1.0.4
packaging==25.0
pluggy==1.6.0
pycparser==2.22
Pygments==2.19.2
pytest==8.4.1
scipy==1.16.1
scs==3.2.7.post2
setuptools==80.9.0


--- requirements-test.txt
+++ requirements-test.txt
@@ -3,4 +3,4 @@
 tox
 flake8
 pytest-django
-coverage
+coverage
\ No newline at end of file
--- setup.py
+++ setup.py
@@ -1,39 +1,7 @@
 import os
 from setuptools import find_packages, setup
 from faktura import __version__ as VERSION, __author__ as AUTHOR
-
-with open(os.path.join(os.path.dirname(__file__), "README.rst")) as readme:
+with open(os.path.join(os.path.dirname(__file__), 'README.rst')) as readme:
     README = readme.read()
-
-# allow setup.py to be run from any path
 os.chdir(os.path.normpath(os.path.join(os.path.abspath(__file__), os.pardir)))
-
-setup(
-    name="django-faktura",
-    version=VERSION,
-    install_requires=["django-wkhtmltopdf"],
-    packages=find_packages(),
-    include_package_data=True,
-    setup_requires=["pytest-runner"],
-    tests_require=["pytest"],
-    license="MIT License",
-    description="A simple Django app to create and manage invoices.",
-    long_description=README,
-    long_description_content_type="text/x-rst",
-    url="https://github.com/ricco386/django-faktura",
-    author=AUTHOR,
-    classifiers=[
-        "Environment :: Web Environment",
-        "Framework :: Django",
-        "Framework :: Django :: 2.1",
-        "Framework :: Django :: 2.2",
-        "Intended Audience :: Developers",
-        "License :: OSI Approved :: MIT License",
-        "Operating System :: OS Independent",
-        "Programming Language :: Python",
-        "Programming Language :: Python :: 3.6",
-        "Programming Language :: Python :: 3.7",
-        "Topic :: Internet :: WWW/HTTP",
-        "Topic :: Internet :: WWW/HTTP :: Dynamic Content",
-    ],
-)
+setup(name='django-faktura', version=VERSION, install_requires=['django-wkhtmltopdf'], packages=find_packages(), include_package_data=True, setup_requires=['pytest-runner'], tests_require=['pytest'], license='MIT License', description='A simple Django app to create and manage invoices.', long_description=README, long_description_content_type='text/x-rst', url='https://github.com/ricco386/django-faktura', author=AUTHOR, classifiers=['Environment :: Web Environment', 'Framework :: Django', 'Framework :: Django :: 2.1', 'Framework :: Django :: 2.2', 'Intended Audience :: Developers', 'License :: OSI Approved :: MIT License', 'Operating System :: OS Independent', 'Programming Language :: Python', 'Programming Language :: Python :: 3.6', 'Programming Language :: Python :: 3.7', 'Topic :: Internet :: WWW/HTTP', 'Topic :: Internet :: WWW/HTTP :: Dynamic Content'])
\ No newline at end of file
--- setup_ricco386__django-faktura.sh
+++ setup_ricco386__django-faktura.sh
@@ -0,0 +1,5 @@
+#!/bin/bash
+set -euo pipefail
+
+pip install -r requirements-test.txt
+pip install pytest
--- test_ricco386__django-faktura.sh
+++ test_ricco386__django-faktura.sh
@@ -0,0 +1,4 @@
+#!/bin/bash
+set -euo pipefail
+
+python -m pytest .

--- base_urls.py
+++ base_urls.py
@@ -9,7 +9,8 @@
 if django.get_version()[0] == '2':
     from django.urls import include, path
 else:
-    from django.conf.urls import include, url as path
+    from django.conf.urls import include
+    from django.urls import re_path as path

 urlpatterns = [
     path("invoices/", include("faktura.urls")),

FROM mirror.gcr.io/python:3.12.11

ENV PIP_INDEX_URL=http://localhost:5000/snapshot/2025-07-31
ENV PIP_TRUSTED_HOST=localhost

WORKDIR /work

COPY ricco386__django-faktura .

RUN bash /work/setup_ricco386__django-faktura.sh

ENTRYPOINT ["bash"]
CMD ["/work/test_ricco386__django-faktura.sh"]

asgiref==3.9.1
cachetools==6.1.0
chardet==5.2.0
colorama==0.4.6
coverage==7.10.1
distlib==0.4.0
Django==5.2.4
django-wkhtmltopdf==3.4.0
filelock==3.18.0
flake8==7.3.0
iniconfig==2.1.0
mccabe==0.7.0
packaging==25.0
platformdirs==4.3.8
pluggy==1.6.0
pycodestyle==2.14.0
pyflakes==3.4.0
Pygments==2.19.2
pyproject-api==1.9.1
pytest==8.4.1
pytest-django==4.11.1
six==1.17.0
sqlparse==0.5.3
tox==4.28.3
virtualenv==20.32.0


--- requirements.txt
+++ requirements.txt
@@ -1,3 +1,3 @@
 -r requirements_base.txt
-tensorflow==2.7.2
-tensorflowjs==3.6.0
+tensorflow
+tensorflowjs
\ No newline at end of file
--- requirements_base.txt
+++ requirements_base.txt
@@ -1,11 +1,11 @@
-better-profanity==0.6.1
-gensim==3.8.0
-google-compute-engine==2.8.3
-jmespath==0.9.4
-pandas==1.1.5
-scikit-learn==0.24.2
-scipy==1.5.4
-six==1.15.0
-tensorflow-hub==0.9.0
-tensorflow_text==2.7.3
-urllib3==1.26.5
+better-profanity
+gensim
+google-compute-engine
+jmespath
+pandas
+scikit-learn
+scipy
+six
+tensorflow-hub
+tensorflow_text
+urllib3
\ No newline at end of file
--- requirements_dev.txt
+++ requirements_dev.txt
@@ -1,4 +1,4 @@
 -r requirements.txt
-black==22.6.0
-pytest==7.1.2
-pytest-cov==3.0.0
+black
+pytest
+pytest-cov
\ No newline at end of file
--- setup_dlebech__lyrics-generator.sh
+++ setup_dlebech__lyrics-generator.sh
@@ -0,0 +1,7 @@
+#!/bin/bash
+set -euo pipefail
+
+pip install -r requirements.txt
+pip install -r requirements_dev.txt
+pip install -r requirements_base.txt
+pip install pytest
--- test_dlebech__lyrics-generator.sh
+++ test_dlebech__lyrics-generator.sh
@@ -0,0 +1,4 @@
+#!/bin/bash
+set -euo pipefail
+
+python -m pytest .

--- tests/embedding_test.py
+++ tests/embedding_test.py
@@ -22,7 +22,7 @@
     )

     # It excludes newlines for this example
-    assert len(w2v.wv.vocab) == 3
+    assert len(w2v.wv) == 3
     assert len(w2v.wv["woof"]) == 5

     with open(export_dir + "/word2vec.txt") as f:

--- lyrics/embedding.py
+++ lyrics/embedding.py
@@ -39,7 +39,7 @@
         )
     )
     now = datetime.datetime.now()
-    model = Word2Vec(sequences, size=embedding_dim, workers=_num_workers, min_count=1)
+    model = Word2Vec(sequences, vector_size=embedding_dim, workers=_num_workers, min_count=1)
     print("Took {}".format(datetime.datetime.now() - now))

     # Save the model both in the gensim format but also as a text file, similar
@@ -47,7 +47,7 @@
     model.save(f"{data_dir}/word2vec{name_suffix}.model")
     with open(f"{data_dir}/word2vec{name_suffix}.txt", "w") as f:
         writer = csv.writer(f, delimiter=" ", quoting=csv.QUOTE_MINIMAL)
-        for word in model.wv.vocab:
+        for word in model.wv.index_to_key:
             word_vector = model.wv[word]
             writer.writerow([word] + ["{:.5f}".format(i) for i in word_vector])

FROM mirror.gcr.io/python:3.12.11

ENV PIP_INDEX_URL=http://localhost:5000/snapshot/2025-07-31
ENV PIP_TRUSTED_HOST=localhost

WORKDIR /work

COPY dlebech__lyrics-generator .

RUN bash /work/setup_dlebech__lyrics-generator.sh

ENTRYPOINT ["bash"]
CMD ["/work/test_dlebech__lyrics-generator.sh"]

absl-py==2.3.1
aiofiles==24.1.0
astunparse==1.6.3
better-profanity==0.7.0
black==25.1.0
boto==2.49.0
certifi==2025.7.14
charset-normalizer==3.4.2
chex==0.1.90
click==8.2.1
coverage==7.10.1
distro==1.9.0
etils==1.13.0
flatbuffers==25.2.10
flax==0.11.0
fsspec==2025.7.0
gast==0.6.0
gensim==4.3.3
google-compute-engine==2.8.13
google-pasta==0.2.0
grpcio==1.74.0
h5py==3.14.0
humanize==4.12.3
idna==3.10
importlib_resources==6.5.2
iniconfig==2.1.0
jax==0.7.0
jaxlib==0.7.0
jmespath==1.0.1
joblib==1.5.1
keras==3.11.0
libclang==18.1.1
Markdown==3.8.2
markdown-it-py==3.0.0
MarkupSafe==3.0.2
mdurl==0.1.2
ml_dtypes==0.5.3
msgpack==1.1.1
mypy_extensions==1.1.0
namex==0.1.0
nest-asyncio==1.6.0
numpy==1.26.4
opt_einsum==3.4.0
optax==0.2.5
optree==0.17.0
orbax-checkpoint==0.11.20
packaging==23.2
pandas==2.3.1
pathspec==0.12.1
platformdirs==4.3.8
pluggy==1.6.0
protobuf==5.29.5
Pygments==2.19.2
pytest==8.4.1
pytest-cov==6.2.1
python-dateutil==2.9.0.post0
pytz==2025.2
PyYAML==6.0.2
requests==2.32.4
rich==14.1.0
scikit-learn==1.7.1
scipy==1.13.1
setuptools==80.9.0
simplejson==3.20.1
six==1.17.0
smart_open==7.3.0.post1
tensorboard==2.19.0
tensorboard-data-server==0.7.2
tensorflow==2.19.0
tensorflow-hub==0.16.1
tensorflow-text==2.19.0
tensorflow_decision_forests==1.12.0
tensorflowjs==4.22.0
tensorstore==0.1.76
termcolor==3.1.0
tf_keras==2.19.0
threadpoolctl==3.6.0
toolz==1.0.0
treescope==0.1.9
typing_extensions==4.14.1
tzdata==2025.2
urllib3==2.5.0
Werkzeug==3.1.3
wheel==0.45.1
wrapt==1.17.2
wurlitzer==3.1.1
ydf==0.13.0
zipp==3.23.0


--- requirements.txt
+++ requirements.txt
@@ -1,29 +1,29 @@
-asn1crypto==0.24.0
-astroid==2.0.4
-atomicwrites==1.2.1
-attrs==18.2.0
-cffi==1.11.5
-Click==7.0
-cryptography==2.4.1
-Flask==1.1.1
-Flask-SQLAlchemy==2.3.2
-gunicorn==19.9.0
-idna==2.7
-isort==4.3.4
-itsdangerous==1.1.0
-Jinja2==2.10.3
-lazy-object-proxy==1.3.1
-MarkupSafe==1.1.0
-mccabe==0.6.1
-more-itertools==4.3.0
-pluggy==0.8.0
-py==1.7.0
-pycparser==2.19
-pylint==2.1.1
-PyMySQL==0.9.2
-pytest==4.0.0
-six==1.11.0
-SQLAlchemy==1.2.14
-typed-ast==1.1.0
-Werkzeug==0.16.0
-wrapt==1.10.11
+asn1crypto
+astroid
+atomicwrites
+attrs
+cffi
+Click
+cryptography
+Flask
+Flask-SQLAlchemy
+gunicorn
+idna
+isort
+itsdangerous
+Jinja2
+lazy-object-proxy
+MarkupSafe
+mccabe
+more-itertools
+pluggy
+py
+pycparser
+pylint
+PyMySQL
+pytest
+six
+SQLAlchemy
+typed-ast
+Werkzeug
+wrapt
\ No newline at end of file
--- setup_senaps__chosnale.sh
+++ setup_senaps__chosnale.sh
@@ -0,0 +1,5 @@
+#!/bin/bash
+set -euo pipefail
+
+pip install -r requirements.txt
+pip install pytest
--- test_senaps__chosnale.sh
+++ test_senaps__chosnale.sh
@@ -0,0 +1,4 @@
+#!/bin/bash
+set -euo pipefail
+
+python -m pytest .

--- Chosnale/application.py
+++ Chosnale/application.py
@@ -8,7 +8,8 @@
     load_configs(app=app, **kwargs)
     load_blueprints(app)
     db.init_app(app)
-    db.create_all(app=app)
+    with app.app_context():
+        db.create_all()

     return app

FROM mirror.gcr.io/python:3.12.11

ENV PIP_INDEX_URL=http://localhost:5000/snapshot/2025-07-31
ENV PIP_TRUSTED_HOST=localhost

WORKDIR /work

COPY senaps__chosnale .

RUN bash /work/setup_senaps__chosnale.sh

ENTRYPOINT ["bash"]
CMD ["/work/test_senaps__chosnale.sh"]

asn1crypto==1.5.1
astroid==3.3.11
atomicwrites==1.4.1
attrs==25.3.0
blinker==1.9.0
cffi==1.17.1
click==8.2.1
cryptography==45.0.5
dill==0.4.0
Flask==3.1.1
Flask-SQLAlchemy==3.1.1
greenlet==3.2.3
gunicorn==23.0.0
idna==3.10
iniconfig==2.1.0
isort==6.0.1
itsdangerous==2.2.0
Jinja2==3.1.6
lazy-object-proxy==1.11.0
MarkupSafe==3.0.2
mccabe==0.7.0
more-itertools==10.7.0
packaging==25.0
platformdirs==4.3.8
pluggy==1.6.0
py==1.11.0
pycparser==2.22
Pygments==2.19.2
pylint==3.3.7
PyMySQL==1.1.1
pytest==8.4.1
six==1.17.0
SQLAlchemy==2.0.42
tomlkit==0.13.3
typed_ast==1.5.5
typing_extensions==4.14.1
Werkzeug==3.1.3
wrapt==1.17.2


--- setup.py
+++ setup.py
@@ -1,15 +1,2 @@
 from setuptools import setup
-
-
-setup(
-    name="Blockschaltbilder",
-    version="0.1",
-    description="Blockschaltbilder: Boilerplate code generator",
-    author="Mikhail Pak",
-    author_email="mikhail.pak@tum.de",
-    url="https://github.com/mp4096/blockschaltbilder",
-    packages=["blockschaltbilder"],
-    install_requires=["numpy"],
-    license="MIT",
-    test_suite="blockschaltbilder.tests",
-    )
+setup(name='Blockschaltbilder', version='0.1', description='Blockschaltbilder: Boilerplate code generator', author='Mikhail Pak', author_email='mikhail.pak@tum.de', url='https://github.com/mp4096/blockschaltbilder', packages=['blockschaltbilder'], install_requires=['numpy'], license='MIT', test_suite='blockschaltbilder.tests')
\ No newline at end of file
--- setup_mp4096__blockschaltbilder.sh
+++ setup_mp4096__blockschaltbilder.sh
@@ -0,0 +1,4 @@
+#!/bin/bash
+set -euo pipefail
+
+pip install .
--- test_mp4096__blockschaltbilder.sh
+++ test_mp4096__blockschaltbilder.sh
@@ -0,0 +1,4 @@
+#!/bin/bash
+set -euo pipefail
+
+python -m unittest blockschaltbilder.tests.bsb_test blockschaltbilder.tests.boilerplate_test

--- blockschaltbilder/bsb.py
+++ blockschaltbilder/bsb.py
@@ -303,7 +303,7 @@
         self._blocks = []

         # Create an empty adjacency matrix
-        self._adj_mat = np.zeros((0, 0), dtype=np.int)
+        self._adj_mat = np.zeros((0, 0), dtype=int)

         # Create a default block sizes dict if none is given
         if block_sizes is None:
@@ -495,7 +495,7 @@
         temp_mat = self._adj_mat
         new_num_blocks = self.num_blocks
         self._adj_mat = np.zeros((new_num_blocks, new_num_blocks),
-                                 dtype=np.int)
+                                 dtype=int)
         self._adj_mat[:-1, :-1] = temp_mat

     def get_block(self, block_name):

FROM mirror.gcr.io/python:3.12.11

ENV PIP_INDEX_URL=http://localhost:5000/snapshot/2025-07-31
ENV PIP_TRUSTED_HOST=localhost

WORKDIR /work

COPY mp4096__blockschaltbilder .

RUN bash /work/setup_mp4096__blockschaltbilder.sh

ENTRYPOINT ["bash"]
CMD ["/work/test_mp4096__blockschaltbilder.sh"]

Blockschaltbilder @ file:///work
numpy==2.3.2


--- requirements.txt
+++ requirements.txt
@@ -1,4 +1,4 @@
 pyjwt
 flask
 gunicorn
-pytest
+pytest
\ No newline at end of file
--- setup_cynepton__deploy-flask-app-to-eks.sh
+++ setup_cynepton__deploy-flask-app-to-eks.sh
@@ -0,0 +1,5 @@
+#!/bin/bash
+set -euo pipefail
+
+pip install -r requirements.txt
+pip install pytest
--- test_cynepton__deploy-flask-app-to-eks.sh
+++ test_cynepton__deploy-flask-app-to-eks.sh
@@ -0,0 +1,4 @@
+#!/bin/bash
+set -euo pipefail
+
+python -m pytest .

--- main.py
+++ main.py
@@ -79,7 +79,7 @@

     user_data = body

-    return jsonify(token=_get_jwt(user_data).decode('utf-8'))
+    return jsonify(token=_get_jwt(user_data))

 @APP.route('/contents', methods=['GET'])

FROM mirror.gcr.io/python:3.12.11

ENV PIP_INDEX_URL=http://localhost:5000/snapshot/2025-07-31
ENV PIP_TRUSTED_HOST=localhost

WORKDIR /work

COPY cynepton__deploy-flask-app-to-eks .

RUN bash /work/setup_cynepton__deploy-flask-app-to-eks.sh

ENTRYPOINT ["bash"]
CMD ["/work/test_cynepton__deploy-flask-app-to-eks.sh"]

blinker==1.9.0
click==8.2.1
Flask==3.1.1
gunicorn==23.0.0
iniconfig==2.1.0
itsdangerous==2.2.0
Jinja2==3.1.6
MarkupSafe==3.0.2
packaging==25.0
pluggy==1.6.0
Pygments==2.19.2
PyJWT==2.10.1
pytest==8.4.1
Werkzeug==3.1.3


--- gayson/convert.py
+++ gayson/convert.py
@@ -47,7 +47,7 @@
         return converter_cls.value_to_json(value)

     @classmethod
-    def json_to_value(mcs, json: collections.Mapping):
+    def json_to_value(mcs, json: collections.abc.Mapping):
         key = json.get('__type__', None)
         value = json.get('value', None)
         if key is None:
@@ -72,7 +72,7 @@

     @classmethod
     def loads_object_hook(mcs, json: Union[Dict, List, str, int, float, bool]):
-        if isinstance(json, collections.Mapping) and '__type__' in json:
+        if isinstance(json, collections.abc.Mapping) and '__type__' in json:
             return mcs.json_to_value(json)
         else:
             return json

FROM mirror.gcr.io/python:3.12.11

ENV PIP_INDEX_URL=http://localhost:5000/snapshot/2025-07-31
ENV PIP_TRUSTED_HOST=localhost

WORKDIR /work

COPY serioeseGmbH__hackwork-gayson .

RUN bash /work/setup_serioeseGmbH__hackwork-gayson.sh

ENTRYPOINT ["bash"]
CMD ["/work/test_serioeseGmbH__hackwork-gayson.sh"]

hackwork_gayson @ file:///work
python-rapidjson==1.21
pytz==2025.2


--- dev-requirements.txt
+++ dev-requirements.txt
@@ -1,2 +1,2 @@
-nose==1.3.7
-requests-mock==0.7.0
\ No newline at end of file
+nose
+requests-mock
\ No newline at end of file
--- docs/requirements.txt
+++ docs/requirements.txt
@@ -1,3 +1,3 @@
-Sphinx==1.3.4
-sphinx-rtd-theme==0.1.9
-sphinxcontrib-httpdomain==1.4.0
+Sphinx
+sphinx-rtd-theme
+sphinxcontrib-httpdomain
\ No newline at end of file
--- requirements.txt
+++ requirements.txt
@@ -1,3 +1,3 @@
-hvac==0.5.0
-PyYAML==5.4
-requests==2.27.1
+hvac
+PyYAML
+requests
\ No newline at end of file
--- setup.py
+++ setup.py
@@ -1,33 +1,11 @@
-#!./venv/bin/python3
 import os
 from version import __version__
 from setuptools import setup
-
-
 try:
     from setuptools import setup
 except ImportError:
     from distutils.core import setup
-
 with open('requirements.txt') as f:
     dependencies = f.read().splitlines()
-
-version = '.'.join(str(x) for x in __version__)
-
-setup(
-    name='Eliza',
-    version=version,
-    description='Library with common features for Python (Flask) Microservices',
-    url='https://github.com/redvox/Eliza',
-    download_url = 'https://github.com/redvox/Eliza/tarball/'+version,
-    author='Jens Schaa',
-    author_email="jens.schaa@posteo.de",
-    packages=[
-        'eliza',
-    ],
-    package_data={},
-    license='Apache Software License',
-    install_requires=dependencies,
-    test_suite='test.test_data',
-    long_description=open('README.md').read()
-)
+version = '.'.join((str(x) for x in __version__))
+setup(name='Eliza', version=version, description='Library with common features for Python (Flask) Microservices', url='https://github.com/redvox/Eliza', download_url='https://github.com/redvox/Eliza/tarball/' + version, author='Jens Schaa', author_email='jens.schaa@posteo.de', packages=['eliza'], package_data={}, license='Apache Software License', install_requires=dependencies, test_suite='test.test_data', long_description=open('README.md').read())
\ No newline at end of file
--- setup_redvox__Eliza.sh
+++ setup_redvox__Eliza.sh
@@ -0,0 +1,6 @@
+#!/bin/bash
+set -euo pipefail
+
+pip install -r dev-requirements.txt
+pip install -r requirements.txt
+pip install -r docs/requirements.txt
--- test_redvox__Eliza.sh
+++ test_redvox__Eliza.sh
@@ -0,0 +1,4 @@
+#!/bin/bash
+set -euo pipefail
+
+python -m unittest test.test_config

--- eliza/config.py
+++ eliza/config.py
@@ -79,7 +79,7 @@
         try:
             for env in environments:
                 with open(path + env + '.yaml', 'r') as configFile:
-                    env_config = yaml.load(configFile.read()) or {}
+                    env_config = yaml.load(configFile.read(), Loader=yaml.Loader) or {}
                 config.update(env_config)
             if fill_with_defaults:
                 if 'defaults' in config:

FROM mirror.gcr.io/python:3.12.11

ENV PIP_INDEX_URL=http://localhost:5000/snapshot/2025-07-31
ENV PIP_TRUSTED_HOST=localhost

WORKDIR /work

COPY redvox__Eliza .

RUN bash /work/setup_redvox__Eliza.sh

ENTRYPOINT ["bash"]
CMD ["/work/test_redvox__Eliza.sh"]

alabaster==1.0.0
babel==2.17.0
certifi==2025.7.14
charset-normalizer==3.4.2
docutils==0.21.2
hvac==2.3.0
idna==3.10
imagesize==1.4.1
Jinja2==3.1.6
MarkupSafe==3.0.2
nose==1.3.7
packaging==25.0
Pygments==2.19.2
PyYAML==6.0.2
requests==2.32.4
requests-mock==1.12.1
roman-numerals-py==3.1.0
six==1.17.0
snowballstemmer==3.0.1
Sphinx==8.2.3
sphinx-rtd-theme==3.0.2
sphinxcontrib-applehelp==2.0.0
sphinxcontrib-devhelp==2.0.0
sphinxcontrib-htmlhelp==2.1.0
sphinxcontrib-httpdomain==1.8.1
sphinxcontrib-jquery==4.1
sphinxcontrib-jsmath==1.0.1
sphinxcontrib-qthelp==2.0.0
sphinxcontrib-serializinghtml==2.0.0
urllib3==2.5.0


--- requirements.txt
+++ requirements.txt
@@ -1,5 +1,5 @@
 ansible
 guzzle_sphinx_theme
 mock
-sphinx==1.6.6
-sphinx-reload
+sphinx
+sphinx-reload
\ No newline at end of file
--- setup_naftulikay__ansible-role-degoss.sh
+++ setup_naftulikay__ansible-role-degoss.sh
@@ -0,0 +1,4 @@
+#!/bin/bash
+set -euo pipefail
+
+pip install -r requirements.txt
--- test_naftulikay__ansible-role-degoss.sh
+++ test_naftulikay__ansible-role-degoss.sh
@@ -0,0 +1,4 @@
+#!/bin/bash
+set -euo pipefail
+
+python -m unittest tests

--- library/degoss.py
+++ library/degoss.py
@@ -5,6 +5,7 @@

 from ansible.module_utils import six
 from ansible.module_utils.basic import *
+from ansible.module_utils.six import string_types

 import json
 import logging
@@ -363,7 +364,7 @@
         self.facts = self.deserialize_dict(self.facts)

         # ansible_facts strips the leading ansible_ prefix from variables, restore it to avoid collisions
-        for key in self.facts.keys():
+        for key in list(self.facts.keys()):
             if not key.startswith("ansible_"):
                 self.facts["ansible_{}".format(key)] = self.facts.pop(key)

FROM mirror.gcr.io/python:3.12.11

ENV PIP_INDEX_URL=http://localhost:5000/snapshot/2025-07-31
ENV PIP_TRUSTED_HOST=localhost

WORKDIR /work

COPY naftulikay__ansible-role-degoss .

RUN bash /work/setup_naftulikay__ansible-role-degoss.sh

ENTRYPOINT ["bash"]
CMD ["/work/test_naftulikay__ansible-role-degoss.sh"]

alabaster==1.0.0
ansible==11.8.0
ansible-core==2.18.7
babel==2.17.0
certifi==2025.7.14
cffi==1.17.1
charset-normalizer==3.4.2
cryptography==45.0.5
docutils==0.21.2
guzzle_sphinx_theme==0.7.11
idna==3.10
imagesize==1.4.1
Jinja2==3.1.6
livereload==2.7.1
MarkupSafe==3.0.2
mock==5.2.0
packaging==25.0
pycparser==2.22
Pygments==2.19.2
PyYAML==6.0.2
requests==2.32.4
resolvelib==1.0.1
roman-numerals-py==3.1.0
snowballstemmer==3.0.1
Sphinx==8.2.3
sphinx-reload==0.2.0
sphinxcontrib-applehelp==2.0.0
sphinxcontrib-devhelp==2.0.0
sphinxcontrib-htmlhelp==2.1.0
sphinxcontrib-jsmath==1.0.1
sphinxcontrib-qthelp==2.0.0
sphinxcontrib-serializinghtml==2.0.0
tornado==6.5.1
urllib3==2.5.0


--- requirements.txt
+++ requirements.txt
@@ -1,6 +1,6 @@
-pyasn1>=0.4.0,<0.5.0
-certvalidator>=0.11
-asn1crypto>=1.3,<2
-oscrypto>=1.1,<2
-pyasn1-modules>=0.2.8
-mscerts
+pyasn1
+certvalidator
+asn1crypto
+oscrypto
+pyasn1-modules
+mscerts
\ No newline at end of file
--- setup.py
+++ setup.py
@@ -1,54 +1,12 @@
 import glob
 import os
 from setuptools import setup
-
-
 base_dir = os.path.dirname(__file__)
 about = {}
-with open(os.path.join(base_dir, "signify", "__init__.py")) as f:
+with open(os.path.join(base_dir, 'signify', '__init__.py')) as f:
     exec(f.read(), about)
-
 try:
-    long_description = open("README.rst", "r").read()
+    long_description = open('README.rst', 'r').read()
 except Exception:
     long_description = None
-
-
-setup(
-    name='signify',
-    version=about['__version__'],
-    packages=['signify', 'signify.asn1', 'signify.authenticode', 'signify.pkcs7', 'signify.x509'],
-    package_data={'signify': ['*.pem']},
-    include_package_data=True,
-
-    url='https://github.com/ralphje/signify',
-    download_url='https://github.com/ralphje/signify/tarball/v' + about['__version__'],
-    license='MIT',
-    author='Ralph Broenink',
-    author_email='ralph@ralphbroenink.net',
-    description='Module to generate and verify PE signatures',
-    long_description=long_description,
-    install_requires=['pyasn1>=0.4.0,<0.5.0',
-                      'certvalidator>=0.11',
-                      'asn1crypto>=1.3,<2',
-                      'oscrypto>=1.1,<2',
-                      'pyasn1-modules>=0.2.8',
-                      'mscerts'],
-    keywords=['authenticode', 'authentihash', 'fingerprinter', 'pe'],
-    classifiers=[
-        'Development Status :: 3 - Alpha',
-        'Environment :: Console',
-        'Intended Audience :: Developers',
-        'Intended Audience :: Legal Industry',
-        'Intended Audience :: System Administrators',
-        'License :: OSI Approved :: MIT License',
-        'Programming Language :: Python :: 3.7',
-        'Programming Language :: Python :: 3.8',
-        'Programming Language :: Python :: 3.9',
-        'Programming Language :: Python :: 3.10',
-        'Topic :: Scientific/Engineering :: Information Analysis',
-        'Topic :: Security :: Cryptography',
-        'Topic :: System :: Software Distribution',
-        'Topic :: Utilities',
-    ]
-)
+setup(name='signify', version=about['__version__'], packages=['signify', 'signify.asn1', 'signify.authenticode', 'signify.pkcs7', 'signify.x509'], package_data={'signify': ['*.pem']}, include_package_data=True, url='https://github.com/ralphje/signify', download_url='https://github.com/ralphje/signify/tarball/v' + about['__version__'], license='MIT', author='Ralph Broenink', author_email='ralph@ralphbroenink.net', description='Module to generate and verify PE signatures', long_description=long_description, install_requires=['pyasn1', 'certvalidator', 'asn1crypto', 'oscrypto', 'pyasn1-modules', 'mscerts'], keywords=['authenticode', 'authentihash', 'fingerprinter', 'pe'], classifiers=['Development Status :: 3 - Alpha', 'Environment :: Console', 'Intended Audience :: Developers', 'Intended Audience :: Legal Industry', 'Intended Audience :: System Administrators', 'License :: OSI Approved :: MIT License', 'Programming Language :: Python :: 3.7', 'Programming Language :: Python :: 3.8', 'Programming Language :: Python :: 3.9', 'Programming Language :: Python :: 3.10', 'Topic :: Scientific/Engineering :: Information Analysis', 'Topic :: Security :: Cryptography', 'Topic :: System :: Software Distribution', 'Topic :: Utilities'])
\ No newline at end of file
--- setup_ralphje__signify.sh
+++ setup_ralphje__signify.sh
@@ -0,0 +1,5 @@
+#!/bin/bash
+set -euo pipefail
+
+pip install -r requirements.txt
+pip install -r tests/requirements.txt
--- test_ralphje__signify.sh
+++ test_ralphje__signify.sh
@@ -0,0 +1,4 @@
+#!/bin/bash
+set -euo pipefail
+
+python -m unittest tests.test_asn1 tests.test_authenticode tests.test_authroot tests.test_fingerprinter tests.test_context tests.test_signerinfo
--- tests/requirements.txt
+++ tests/requirements.txt
@@ -1,2 +1,2 @@
-flake8~=4.0.1
-coverage~=6.2
+flake8
+coverage
\ No newline at end of file

--- signify/asn1/preserving_der.py
+++ signify/asn1/preserving_der.py
@@ -1,6 +1,5 @@
 from pyasn1.codec.cer import encoder as cer_encoder
 from pyasn1.codec.der import encoder
-from pyasn1.compat.octets import null, str2octs
 from pyasn1.type import univ

 __all__ = ['encode']
@@ -14,7 +13,7 @@
             value, asn1Spec, encodeFun, **options)

         if len(chunks) > 1:
-            zero = str2octs('\x00')
+            zero = b'\x00'
             maxLen = max(map(len, chunks))
             paddedChunks = [
                 (x.ljust(maxLen, zero), x) for x in chunks
@@ -22,7 +21,7 @@

             chunks = [x[1] for x in paddedChunks]

-        return null.join(chunks), True, True
+        return b''.join(chunks), True, True

 tagMap = encoder.tagMap.copy()

FROM mirror.gcr.io/python:3.12.11

ENV PIP_INDEX_URL=http://localhost:5000/snapshot/2025-07-31
ENV PIP_TRUSTED_HOST=localhost

WORKDIR /work

COPY ralphje__signify .

RUN bash /work/setup_ralphje__signify.sh

ENTRYPOINT ["bash"]
CMD ["/work/test_ralphje__signify.sh"]

asn1crypto==1.5.1
certvalidator==0.11.1
coverage==7.10.1
flake8==7.3.0
mccabe==0.7.0
mscerts==2025.6.27
oscrypto==1.3.0
pyasn1==0.6.1
pyasn1_modules==0.4.2
pycodestyle==2.14.0
pyflakes==3.4.0

tests/test_context.py, tests/test_fingerprinter.py, tests/test_signerinfo.py, tests/test_asn1.py, tests/test_authenticode.py, tests/test_authroot.py


--- requirements.txt
+++ requirements.txt
@@ -1,4 +1,4 @@
-looptools>=1.2.3
-Pillow>=7.2.0
-PyBundle==1.0.6
-reportlab>=3.5.49
+looptools
+Pillow
+PyBundle
+reportlab
\ No newline at end of file
--- setup.py
+++ setup.py
@@ -1,14 +1,8 @@
 import os
 from setuptools import setup, find_packages
-
 NAME = 'PillowImage'
-
 DESCRIPTION = 'Pillow wrapper for quick image alterations.'
-
-LONG_DESCRIPTION = """
-Pure Python Pillow package wrapper.
-"""
-
+LONG_DESCRIPTION = '\nPure Python Pillow package wrapper.\n'

 def get_version(package_name, version_file='_version.py'):
     """
@@ -21,23 +15,4 @@
     filename = os.path.join(os.path.dirname(__file__), package_name, version_file)
     with open(filename, 'rb') as fp:
         return fp.read().decode('utf8').split('=')[1].strip(" \n'")
-
-
-setup(
-    name=NAME,
-    version=get_version(NAME),
-    packages=find_packages(),
-    python_requires='>=3.6',
-    install_requires=[
-        'reportlab>=3.5.19',
-        'Pillow>=7.0',
-        'PyBundle>=1.0.6',
-    ],
-    include_package_data=True,
-    url='https://github.com/sfneal/PillowImage',
-    license='MIT',
-    author='Stephen Neal',
-    author_email='stephen@stephenneal.net',
-    description=DESCRIPTION,
-    long_description=LONG_DESCRIPTION,
-)
+setup(name=NAME, version=get_version(NAME), packages=find_packages(), python_requires='>=3.6', install_requires=['reportlab', 'Pillow', 'PyBundle'], include_package_data=True, url='https://github.com/sfneal/PillowImage', license='MIT', author='Stephen Neal', author_email='stephen@stephenneal.net', description=DESCRIPTION, long_description=LONG_DESCRIPTION)
\ No newline at end of file
--- setup_sfneal__PillowImage.sh
+++ setup_sfneal__PillowImage.sh
@@ -0,0 +1,4 @@
+#!/bin/bash
+set -euo pipefail
+
+pip install -r requirements.txt
--- test_sfneal__PillowImage.sh
+++ test_sfneal__PillowImage.sh
@@ -0,0 +1,4 @@
+#!/bin/bash
+set -euo pipefail
+
+python -m unittest tests.test_PillowImage_jpeg tests.test_PillowImage_png tests.test_PillowImage_utils

--- PillowImage/pillow.py
+++ PillowImage/pillow.py
@@ -83,7 +83,7 @@
         :return: X coordinate value
         """
         # ('Page Width' - 'Text Width') / 2
-        return (self.width - drawing.textsize(text, font=font_type)[0]) / 2
+        return (self.width - drawing.textlength(text, font=font_type)) / 2

     def _text_centered_y(self, font_size):
         """
@@ -169,14 +169,14 @@
         """Adjust an images width while proportionately scaling height."""
         width_percent = (max_width / float(self.width))
         height_size = int((float(self.height)) * float(width_percent))
-        self.img = self.img.resize((max_width, height_size), Image.ANTIALIAS)
+        self.img = self.img.resize((max_width, height_size), Image.LANCZOS)
         return self.img

     def resize_height(self, max_height):
         """Adjust an images height while proportionately scaling width."""
         height_percent = (max_height / float(self.height))
         width_size = int((float(self.width) * float(height_percent)))
-        self.img = self.img.resize((width_size, max_height), Image.ANTIALIAS)
+        self.img = self.img.resize((width_size, max_height), Image.LANCZOS)
         return self.img

     def draw_text(self, text, x='center', y=140, font=FONT, font_size=40, opacity=25):

FROM mirror.gcr.io/python:3.12.11

ENV PIP_INDEX_URL=http://localhost:5000/snapshot/2025-07-31
ENV PIP_TRUSTED_HOST=localhost

WORKDIR /work

COPY sfneal__PillowImage .

RUN bash /work/setup_sfneal__PillowImage.sh

ENTRYPOINT ["bash"]
CMD ["/work/test_sfneal__PillowImage.sh"]

charset-normalizer==3.4.2
looptools==1.2.4
pillow==11.3.0
PyBundle==1.0.6
reportlab==4.4.3


--- setup.py
+++ setup.py
@@ -1,54 +1,4 @@
 from setuptools import setup, find_packages
-
-with open("README.md", "r") as fh:
+with open('README.md', 'r') as fh:
     long_description = fh.read()
-
-setup(
-    name='guineabot',
-    version='0.3.0',
-    description='A guinea pig Twitter bot.',
-    long_description=long_description,
-    long_description_content_type='text/markdown',
-    author='John Chase',
-    author_email='ratteal@gmail.com',
-    python_requires='>=3.7',
-    url='https://github.com/RatJuggler/guinea-bot',
-    project_urls={
-        "Documentation": "https://github.com/RatJuggler/guinea-bot",
-        "Code": "https://github.com/RatJuggler/guinea-bot",
-        "Issue tracker": "https://github.com/RatJuggler/guinea-bot/issues",
-    },
-    packages=find_packages(exclude=['tests']),
-    package_data={
-        'guineabot': ['guinea_pig_sayings.json'],
-    },
-    entry_points={
-        'console_scripts': [
-            'guineabot = guineabot.__main__:simulate_guinea_pig',
-        ]
-    },
-    install_requires=[
-        # Check latest releases on piwheels: https://www.piwheels.org/
-        'click ==7.1.2',
-        'environs ==9.3.0',
-        'tweepy ==3.10.0',
-        'prometheus_client ==0.9.0'
-    ],
-    test_suite='tests',
-    tests_require=[
-        'coverage',
-        'flake8',
-        'testfixtures',
-        'tox'
-    ],
-    license='MIT',
-    classifiers=[
-        # Trove classifiers
-        # Full list: https://pypi.python.org/pypi?%3Aaction=list_classifiers
-        'License :: OSI Approved :: MIT License',
-        'Development Status :: 5 - Production/Stable',
-        'Programming Language :: Python :: 3.7',
-        'Operating System :: POSIX :: Linux',
-        'Topic :: Games/Entertainment :: Simulation'
-    ]
-)
+setup(name='guineabot', version='0.3.0', description='A guinea pig Twitter bot.', long_description=long_description, long_description_content_type='text/markdown', author='John Chase', author_email='ratteal@gmail.com', python_requires='>=3.7', url='https://github.com/RatJuggler/guinea-bot', project_urls={'Documentation': 'https://github.com/RatJuggler/guinea-bot', 'Code': 'https://github.com/RatJuggler/guinea-bot', 'Issue tracker': 'https://github.com/RatJuggler/guinea-bot/issues'}, packages=find_packages(exclude=['tests']), package_data={'guineabot': ['guinea_pig_sayings.json']}, entry_points={'console_scripts': ['guineabot = guineabot.__main__:simulate_guinea_pig']}, install_requires=['click', 'environs', 'tweepy', 'prometheus_client'], test_suite='tests', tests_require=['coverage', 'flake8', 'testfixtures', 'tox'], license='MIT', classifiers=['License :: OSI Approved :: MIT License', 'Development Status :: 5 - Production/Stable', 'Programming Language :: Python :: 3.7', 'Operating System :: POSIX :: Linux', 'Topic :: Games/Entertainment :: Simulation'])
\ No newline at end of file
--- setup_RatJuggler__guinea-bot.sh
+++ setup_RatJuggler__guinea-bot.sh
@@ -0,0 +1,5 @@
+#!/bin/bash
+set -euo pipefail
+
+pip install .
+pip install coverage flake8 testfixtures tox
--- test_RatJuggler__guinea-bot.sh
+++ test_RatJuggler__guinea-bot.sh
@@ -0,0 +1,4 @@
+#!/bin/bash
+set -euo pipefail
+
+python -m unittest tests.test_twitter_api tests.test_sayings tests.test_guineapig_state tests.test_guineapig tests.test_main tests.test_photos tests.test_tweeter

--- guineabot/twitter_api.py
+++ guineabot/twitter_api.py
@@ -4,7 +4,8 @@

 from environs import Env
 from prometheus_client import Counter
-from tweepy import API, Cursor, OAuthHandler, TweepError, User
+from tweepy import API, Cursor, OAuthHandler, User
+from tweepy.errors import TweepyException

 from .age_logging import age_logger

@@ -142,7 +143,7 @@
             self.__api.update_status(message)
             age_logger.info("Tweeted: {0}".format(message))
             TWEETS.labels('plain').inc()
-        except TweepError as error:
+        except TweepyException as error:
             if error.api_code == 187:
                 age_logger.warning("Duplicate tweet discarded!")
             else:
@@ -155,7 +156,7 @@
             self.__api.update_status(message, media_ids=[media.media_id])
             age_logger.info("Tweeted: {0} {1}".format(message, photo_path))
             TWEETS.labels('photo').inc()
-        except TweepError as error:
+        except TweepyException as error:
             if error.api_code == 187:
                 age_logger.warning("Duplicate photo tweet discarded!")
             else:

FROM mirror.gcr.io/python:3.12.11

ENV PIP_INDEX_URL=http://localhost:5000/snapshot/2025-07-31
ENV PIP_TRUSTED_HOST=localhost

WORKDIR /work

COPY RatJuggler__guinea-bot .

RUN bash /work/setup_RatJuggler__guinea-bot.sh

ENTRYPOINT ["bash"]
CMD ["/work/test_RatJuggler__guinea-bot.sh"]

cachetools==6.1.0
certifi==2025.7.14
chardet==5.2.0
charset-normalizer==3.4.2
click==8.2.1
colorama==0.4.6
coverage==7.10.1
distlib==0.4.0
environs==14.2.0
filelock==3.18.0
flake8==7.3.0
guineabot @ file:///work
idna==3.10
marshmallow==4.0.0
mccabe==0.7.0
oauthlib==3.3.1
packaging==25.0
platformdirs==4.3.8
pluggy==1.6.0
prometheus_client==0.22.1
pycodestyle==2.14.0
pyflakes==3.4.0
pyproject-api==1.9.1
python-dotenv==1.1.1
requests==2.32.4
requests-oauthlib==2.0.0
testfixtures==9.1.0
tox==4.28.3
tweepy==4.16.0
urllib3==2.5.0
virtualenv==20.32.0

tests/test_sayings.py, tests/test_twitter_api.py, tests/test_main.py, tests/test_tweeter.py, tests/test_guineapig.py, tests/test_guineapig_state.py, tests/test_photos.py


--- requirements.txt
+++ requirements.txt
@@ -1,4 +1,4 @@
 ijson
 jsbeautifier
 requests
-six
+six
\ No newline at end of file
--- setup.py
+++ setup.py
@@ -1,29 +1,4 @@
 from setuptools import setup, find_packages
 from io import open
 import versioneer
-
-setup(
-    name='mixpanel-jql',
-    packages=find_packages(exclude=["tests"]),
-    version=versioneer.get_version(),
-    cmdclass=versioneer.get_cmdclass(),
-    description='A streaming library for making JQL queries to Mixpanel',
-    long_description=open('README.rst').read(),
-    author='Dillon Dixon',
-    author_email='dillondixon@gmail.com',
-    url='https://github.com/ownaginatious/mixpanel-jql',
-    license='MIT',
-    keywords=['mixpanel', 'jql', 'stream'],
-    classifiers=[
-        'License :: OSI Approved :: MIT License',
-        'Programming Language :: Python :: 2.7',
-        'Programming Language :: Python :: 3.3',
-        'Programming Language :: Python :: 3.4',
-        'Programming Language :: Python :: 3.5',
-        'Programming Language :: Python :: 3.6'
-    ],
-    install_requires=[line.strip()
-                      for line in open("requirements.txt", "r",
-                                       encoding="utf-8").readlines()],
-    test_suite="tests"
-)
+setup(name='mixpanel-jql', packages=find_packages(exclude=['tests']), version=versioneer.get_version(), cmdclass=versioneer.get_cmdclass(), description='A streaming library for making JQL queries to Mixpanel', long_description=open('README.rst').read(), author='Dillon Dixon', author_email='dillondixon@gmail.com', url='https://github.com/ownaginatious/mixpanel-jql', license='MIT', keywords=['mixpanel', 'jql', 'stream'], classifiers=['License :: OSI Approved :: MIT License', 'Programming Language :: Python :: 2.7', 'Programming Language :: Python :: 3.3', 'Programming Language :: Python :: 3.4', 'Programming Language :: Python :: 3.5', 'Programming Language :: Python :: 3.6'], install_requires=[line.strip() for line in open('requirements.txt', 'r', encoding='utf-8').readlines()], test_suite='tests')
\ No newline at end of file
--- setup_ownaginatious__mixpanel-jql.sh
+++ setup_ownaginatious__mixpanel-jql.sh
@@ -0,0 +1,4 @@
+#!/bin/bash
+set -euo pipefail
+
+pip install -r requirements.txt
--- test_ownaginatious__mixpanel-jql.sh
+++ test_ownaginatious__mixpanel-jql.sh
@@ -0,0 +1,4 @@
+#!/bin/bash
+set -euo pipefail
+
+python -m unittest tests.test_converters tests.test_syntax tests.test_reducers tests.test_transformations

--- mixpanel_jql/query.py
+++ mixpanel_jql/query.py
@@ -215,7 +215,7 @@
                 elif not isinstance(v, six.string_types):
                     raise JQLSyntaxError('to_date must be datetime, datetime.date, or str')
             elif k == 'event_selectors':
-                if not isinstance(v, collections.Iterable):
+                if not isinstance(v, collections.abc.Iterable):
                     raise JQLSyntaxError("event_params['event_selectors'] must be iterable")
                 for i, e in enumerate(v):
                     if not isinstance(e, dict):
@@ -250,7 +250,7 @@
         for k, v in params.items():
             if k != 'user_selectors':
                 raise JQLSyntaxError('"%s" is not a valid key in people_params' % k)
-            if not isinstance(v, collections.Iterable):
+            if not isinstance(v, collections.abc.Iterable):
                 raise JQLSyntaxError("people_params['user_selectors'] must be iterable")
             for i, e in enumerate(v):
                 for ek, ev in e.items():
@@ -337,7 +337,7 @@
                         % (v, ', '.join(self.VALID_JOIN_TYPES))
                     )
             elif k == 'selectors':
-                if not isinstance(v, collections.Iterable):
+                if not isinstance(v, collections.abc.Iterable):
                     raise JQLSyntaxError("join_params['selectors'] must be iterable")
                 for i, e in enumerate(v):
                     if not isinstance(e, dict):

FROM mirror.gcr.io/python:3.12.11

ENV PIP_INDEX_URL=http://localhost:5000/snapshot/2025-07-31
ENV PIP_TRUSTED_HOST=localhost

WORKDIR /work

COPY ownaginatious__mixpanel-jql .

RUN bash /work/setup_ownaginatious__mixpanel-jql.sh

ENTRYPOINT ["bash"]
CMD ["/work/test_ownaginatious__mixpanel-jql.sh"]

certifi==2025.7.14
charset-normalizer==3.4.2
EditorConfig==0.17.1
idna==3.10
ijson==3.4.0
jsbeautifier==1.15.4
requests==2.32.4
six==1.17.0
urllib3==2.5.0

tests/test_transformations.py, tests/test_reducers.py, tests/test_syntax.py, tests/test_converters.py


--- requirements.txt
+++ requirements.txt
@@ -1,17 +1,17 @@
-gensim==3.8.0
-requests==2.22.0
-html2text==2019.8.11
-python-Levenshtein==0.12.0
+gensim
+requests
+html2text
+python-Levenshtein

 # jupyter notebooks
-scikit-learn==0.24.2
-matplotlib==3.1.1
+scikit-learn
+matplotlib

 # dev
 pylint
-pytest>=4.6   # Required by pytest-cov>=2.10.0
+pytest
 pytest-cov
 python-coveralls
 mypy
-sphinx>=3.0   # Required by sphinx-autodoc-typehints>=1.11.0
-sphinx-autodoc-typehints
+sphinx
+sphinx-autodoc-typehints
\ No newline at end of file
--- setup.py
+++ setup.py
@@ -1,12 +1,2 @@
 from setuptools import setup
-
-setup(
-    name='acres',
-    version='1.0',
-    description='Acronym resolution',
-    url='https://github.com/bst-mug/acres',
-    author='Stefan Schulz',
-    author_email='stefan.schulz@medunigraz.at',
-    license='Apache License 2.0',
-    packages=['acres']
-)
+setup(name='acres', version='1.0', description='Acronym resolution', url='https://github.com/bst-mug/acres', author='Stefan Schulz', author_email='stefan.schulz@medunigraz.at', license='Apache License 2.0', packages=['acres'])
\ No newline at end of file
--- setup_bst-mug__acres.sh
+++ setup_bst-mug__acres.sh
@@ -0,0 +1,5 @@
+#!/bin/bash
+set -euo pipefail
+
+pip install -r requirements.txt
+pip install pytest
--- test_bst-mug__acres.sh
+++ test_bst-mug__acres.sh
@@ -0,0 +1,4 @@
+#!/bin/bash
+set -euo pipefail
+
+python -m pytest .

--- acres/word2vec/test.py
+++ acres/word2vec/test.py
@@ -27,7 +27,7 @@

     # Check for out of vocabulary acronyms
     # TODO fallback to something, maybe clean the acronym?
-    if acronym not in model.wv.vocab:
+    if acronym not in model.wv.index_to_key:
         logger.warning("'%s' not found in the vocabulary!", acronym)
         return []

--- acres/word2vec/train.py
+++ acres/word2vec/train.py
@@ -45,10 +45,10 @@
     # model.build_vocab(sentences=collocations)
     # model.train(sentences=collocations, total_examples=model.corpus_count, epochs=5)

-    model = Word2Vec(size=net_size, alpha=alpha, window=ngram_size - 1,
+    model = Word2Vec(vector_size=net_size, alpha=alpha, window=ngram_size - 1,
                      min_count=min_count, workers=WORKERS, sg=sg, hs=hs, negative=negative)
-    model.build_vocab(sentences=collocations)
-    model.train(sentences=collocations, total_examples=model.corpus_count, epochs=5)
+    model.build_vocab(corpus_iterable=collocations)
+    model.train(corpus_iterable=collocations, total_examples=model.corpus_count, epochs=5)

     return model

FROM mirror.gcr.io/python:3.12.11

ENV PIP_INDEX_URL=http://localhost:5000/snapshot/2025-07-31
ENV PIP_TRUSTED_HOST=localhost

WORKDIR /work

COPY bst-mug__acres .

RUN bash /work/setup_bst-mug__acres.sh

ENTRYPOINT ["bash"]
CMD ["/work/test_bst-mug__acres.sh"]

alabaster==1.0.0
astroid==3.3.11
babel==2.17.0
certifi==2025.7.14
charset-normalizer==3.4.2
contourpy==1.3.3
coverage==7.10.1
cycler==0.12.1
dill==0.4.0
docutils==0.21.2
fonttools==4.59.0
gensim==4.3.3
html2text==2025.4.15
idna==3.10
imagesize==1.4.1
iniconfig==2.1.0
isort==6.0.1
Jinja2==3.1.6
joblib==1.5.1
kiwisolver==1.4.8
Levenshtein==0.27.1
MarkupSafe==3.0.2
matplotlib==3.10.3
mccabe==0.7.0
mypy==1.17.0
mypy_extensions==1.1.0
numpy==1.26.4
packaging==25.0
pathspec==0.12.1
pillow==11.3.0
platformdirs==4.3.8
pluggy==1.6.0
Pygments==2.19.2
pylint==3.3.7
pyparsing==3.2.3
pytest==8.4.1
pytest-cov==6.2.1
python-coveralls==2.9.3
python-dateutil==2.9.0.post0
python-Levenshtein==0.27.1
PyYAML==6.0.2
RapidFuzz==3.13.0
requests==2.32.4
roman-numerals-py==3.1.0
scikit-learn==1.7.1
scipy==1.13.1
six==1.17.0
smart_open==7.3.0.post1
snowballstemmer==3.0.1
Sphinx==8.2.3
sphinx-autodoc-typehints==3.2.0
sphinxcontrib-applehelp==2.0.0
sphinxcontrib-devhelp==2.0.0
sphinxcontrib-htmlhelp==2.1.0
sphinxcontrib-jsmath==1.0.1
sphinxcontrib-qthelp==2.0.0
sphinxcontrib-serializinghtml==2.0.0
threadpoolctl==3.6.0
tomlkit==0.13.3
typing_extensions==4.14.1
urllib3==2.5.0
wrapt==1.17.2

tests/model/test_ngrams.py, tests/fastngram/test_fastngram.py, tests/benchmark/test_benchmark.py, tests/stats/test_senses.py, tests/test_config.py, tests/rater/test_rater.py, tests/word2vec/test_word2vec.py, tests/model/test_detection_standard.py, tests/rater/test_expansion.py, tests/util/test_functions.py, tests/evaluation/test_evaluation.py, tests/preprocess/test_dumps.py, tests/util/test_text.py, tests/preprocess/test_resource_factory.py, tests/stats/test_dictionary.py, tests/util/test_acronym.py, tests/model/test_expansion_standard.py, tests/rater/test_full.py, tests/stats/test_stats.py, tests/model/test_topic_list.py


--- setup.py
+++ setup.py
@@ -1,36 +1,4 @@
 import setuptools
-
-with open("README.md", "r") as fh:
+with open('README.md', 'r') as fh:
     long_description = fh.read()
-
-setuptools.setup(
-    name="PyNiteFEA",
-    version="0.0.80",
-    author="D. Craig Brinck, PE, SE",
-    author_email="Building.Code@outlook.com",
-    description="A simple elastic 3D structural finite element library for Python.",
-    long_description=long_description,
-    long_description_content_type="text/markdown",
-    url="https://github.com/JWock82/PyNite.git",
-    packages=setuptools.find_packages(include=['PyNite', 'Pynite.*']),
-    package_data = {'PyNite': ['*html', '*.css']},
-    classifiers=[
-        "Programming Language :: Python :: 3",
-        "License :: OSI Approved :: MIT License",
-        "Operating System :: OS Independent",
-    ],
-    install_requires=[
-        'numpy',
-        'PrettyTable'
-    ],
-    extras_require = {
-        'Sparse Solver': ['scipy'],
-        'Plotting': ['matplotlib'],
-        'Visualization':  ['vtk'],
-        'Visualization Screenshots': ['IPython'],
-        'Reporting': ['pdfkit', 'Jinja2'],
-        'Reviewing Derivations': ['jupyterlab', 'sympy']
-    },
-    include_package_data = True,
-    python_requires = '>=3.6',
-)
+setuptools.setup(name='PyNiteFEA', version='0.0.80', author='D. Craig Brinck, PE, SE', author_email='Building.Code@outlook.com', description='A simple elastic 3D structural finite element library for Python.', long_description=long_description, long_description_content_type='text/markdown', url='https://github.com/JWock82/PyNite.git', packages=setuptools.find_packages(include=['PyNite', 'Pynite.*']), package_data={'PyNite': ['*html', '*.css']}, classifiers=['Programming Language :: Python :: 3', 'License :: OSI Approved :: MIT License', 'Operating System :: OS Independent'], install_requires=['numpy', 'PrettyTable'], extras_require={'Sparse Solver': ['scipy'], 'Plotting': ['matplotlib'], 'Visualization': ['vtk'], 'Visualization Screenshots': ['IPython'], 'Reporting': ['pdfkit', 'Jinja2'], 'Reviewing Derivations': ['jupyterlab', 'sympy']}, include_package_data=True, python_requires='>=3.6')
\ No newline at end of file
--- setup_JWock82__PyNite.sh
+++ setup_JWock82__PyNite.sh
@@ -0,0 +1,4 @@
+#!/bin/bash
+set -euo pipefail
+
+pip install -r requirements.txt
--- test_JWock82__PyNite.sh
+++ test_JWock82__PyNite.sh
@@ -0,0 +1,4 @@
+#!/bin/bash
+set -euo pipefail
+
+python -m unittest Testing.test_tanks Testing.test_support_settlement Testing.test_axial_load Testing.test_end_releases Testing.test_plate_bending Testing.test_2D_frames Testing.test_shear_wall Testing.test_torsion Testing.test_unstable_structure Testing.test_sloped_beam Testing.test_springs Testing.test_spring_support Testing.test_AISC_PDelta_benchmarks Testing.test_reanalysis Testing.test_member_internal_results

FROM mirror.gcr.io/python:3.12.11

ENV PIP_INDEX_URL=http://localhost:5000/snapshot/2025-07-31
ENV PIP_TRUSTED_HOST=localhost

WORKDIR /work

COPY JWock82__PyNite .

RUN bash /work/setup_JWock82__PyNite.sh

ENTRYPOINT ["bash"]
CMD ["/work/test_JWock82__PyNite.sh"]

asttokens==3.0.0
contourpy==1.3.3
cycler==0.12.1
decorator==5.2.1
executing==2.2.0
fonttools==4.59.0
ipython==9.4.0
ipython_pygments_lexers==1.1.1
jedi==0.19.2
kiwisolver==1.4.8
matplotlib==3.10.3
matplotlib-inline==0.1.7
numpy==2.3.2
packaging==25.0
parso==0.8.4
pexpect==4.9.0
pillow==11.3.0
prettytable==3.16.0
prompt_toolkit==3.0.51
ptyprocess==0.7.0
pure_eval==0.2.3
Pygments==2.19.2
pyparsing==3.2.3
python-dateutil==2.9.0.post0
scipy==1.16.1
six==1.17.0
stack-data==0.6.3
traitlets==5.14.3
vtk==9.5.0
wcwidth==0.2.13

Testing/test_2D_frames.py, Testing/test_spring_support.py, Testing/test_axial_load.py, Testing/test_unstable_structure.py, Testing/test_reanalysis.py, Testing/test_plate_bending.py, Testing/test_tanks.py, Testing/test_torsion.py, Testing/test_end_releases.py, Testing/test_springs.py, Testing/test_AISC_PDelta_benchmarks.py, Testing/test_shear_wall.py, Testing/test_member_internal_results.py, Testing/test_support_settlement.py, Testing/test_sloped_beam.py


--- setup.py
+++ setup.py
@@ -1,59 +1,7 @@
 from setuptools import setup, find_packages
 import pathlib
 import re
-
 here = pathlib.Path(__file__).parent.resolve()
-readme = (here / "README.md").read_text(encoding="utf-8")
-version = re.search(
-    '__version__ = "([^"]+)"',
-    (here / "s2/__init__.py").read_text(encoding="utf-8")
-).group(1)
-
-setup(
-    name="pys2",
-    version=version,
-    author="mirandrom",
-    description=("PyS2  is a python wrapper for the Semantic Scholar (S2) API"),
-
-    long_description_content_type="text/markdown",
-    long_description=readme,
-    keywords="semantic scholar, s2, scientific literature, citation graph",
-    url="https://github.com/mirandrom/pys2/",
-    project_urls={
-        "Bug Reports": "https://github.com/mirandrom/pys2/issues",
-        "Source": "https://github.com/mirandrom/pys2/",
-        "Docs": "https://pys2.readthedocs.org/",
-    },
-    classifiers=[
-        "Development Status :: 4 - Beta",
-        "Intended Audience :: Developers",
-        "Intended Audience :: Science/Research",
-        "License :: OSI Approved :: MIT License",
-        "Natural Language :: English",
-        "Operating System :: OS Independent",
-        "Programming Language :: Python",
-        "Programming Language :: Python :: 3",
-        "Programming Language :: Python :: 3.6",
-        "Programming Language :: Python :: 3.7",
-        "Programming Language :: Python :: 3.8",
-        "Programming Language :: Python :: 3.9",
-        "Topic :: Utilities",
-    ],
-
-    python_requires=">=3.6, <4",
-    install_requires=[
-        "requests >=2.6, <3.0",
-        "pydantic >=1.8, <2.0",
-    ],
-    extras_require={
-        "readthedocs": [
-            "sphinx >= 3, <4.0",
-            "sphinx-autodoc-typehints >= 1.11, <2.0 "
-        ],
-        "test": [
-            "betamax >=0.8, <0.9",
-            "pytest >=6, <7",
-        ],
-    },
-    packages=find_packages(include=["s2","s2.*"]),
-)
\ No newline at end of file
+readme = (here / 'README.md').read_text(encoding='utf-8')
+version = re.search('__version__ = "([^"]+)"', (here / 's2/__init__.py').read_text(encoding='utf-8')).group(1)
+setup(name='pys2', version=version, author='mirandrom', description='PyS2  is a python wrapper for the Semantic Scholar (S2) API', long_description_content_type='text/markdown', long_description=readme, keywords='semantic scholar, s2, scientific literature, citation graph', url='https://github.com/mirandrom/pys2/', project_urls={'Bug Reports': 'https://github.com/mirandrom/pys2/issues', 'Source': 'https://github.com/mirandrom/pys2/', 'Docs': 'https://pys2.readthedocs.org/'}, classifiers=['Development Status :: 4 - Beta', 'Intended Audience :: Developers', 'Intended Audience :: Science/Research', 'License :: OSI Approved :: MIT License', 'Natural Language :: English', 'Operating System :: OS Independent', 'Programming Language :: Python', 'Programming Language :: Python :: 3', 'Programming Language :: Python :: 3.6', 'Programming Language :: Python :: 3.7', 'Programming Language :: Python :: 3.8', 'Programming Language :: Python :: 3.9', 'Topic :: Utilities'], python_requires='>=3.6', install_requires=['requests', 'pydantic'], extras_require={'readthedocs': ['sphinx', 'sphinx-autodoc-typehints'], 'test': ['betamax', 'pytest']}, packages=find_packages(include=['s2', 's2.*']))
\ No newline at end of file
--- setup_mirandrom__PyS2.sh
+++ setup_mirandrom__PyS2.sh
@@ -0,0 +1,5 @@
+#!/bin/bash
+set -euo pipefail
+
+pip install .[readthedocs,test]
+pip install pytest
--- test_mirandrom__PyS2.sh
+++ test_mirandrom__PyS2.sh
@@ -0,0 +1,4 @@
+#!/bin/bash
+set -euo pipefail
+
+python -m pytest .

--- s2/models.py
+++ s2/models.py
@@ -17,9 +17,9 @@
             Semantic Scholar URL of the topic page with format
             https://www.semanticscholar.org/topic/topicId
     """
-    topic: Optional[str]
-    topicId: Optional[str]
-    url: Optional[str]
+    topic: Optional[str] = None
+    topicId: Optional[str] = None
+    url: Optional[str] = None

 class S2PaperAuthor(BaseModel):
@@ -39,8 +39,8 @@
             but easily reconstructed as
             https://www.semanticscholar.org/author/authorId
     """
-    authorId: Optional[str]
-    name: Optional[str]
+    authorId: Optional[str] = None
+    name: Optional[str] = None
     url: Optional[str] = None

@@ -72,16 +72,16 @@
         year: (:obj:`int`, optional):
             Publication year of the paper
     """
-    arxivId: Optional[str]
-    authors: Optional[List[S2PaperAuthor]]
-    doi: Optional[str]
-    intent: Optional[List[str]]
-    isInfluential: Optional[bool]
-    paperId: Optional[str]
-    title: Optional[str]
-    url: Optional[str]
-    venue: Optional[str]
-    year: Optional[int]
+    arxivId: Optional[str] = None
+    authors: Optional[List[S2PaperAuthor]] = None
+    doi: Optional[str] = None
+    intent: Optional[List[str]] = None
+    isInfluential: Optional[bool] = None
+    paperId: Optional[str] = None
+    title: Optional[str] = None
+    url: Optional[str] = None
+    venue: Optional[str] = None
+    year: Optional[int] = None

 class S2Paper(BaseModel):
@@ -131,25 +131,25 @@
             UTC datetime when obtained from API (converted to and from
             ISO 8601 by pydantic in JSON (de)serialization)
     """
-    abstract: Optional[str]
-    arxivId: Optional[str]
-    authors: Optional[List[S2PaperAuthor]]
-    citationVelocity: Optional[int]
-    citations: Optional[List[S2Reference]]
-    corpusId: Optional[int]
-    doi: Optional[str]
-    fieldsOfStudy: Optional[List[str]]
-    influentialCitationCount: Optional[int]
-    is_open_access: Optional[bool]
-    is_publisher_licensed: Optional[bool]
-    paperId: Optional[str]
-    references: Optional[List[S2Reference]]
-    title: Optional[str]
-    topics: Optional[List[S2Topic]]
-    url: Optional[str]
-    venue: Optional[str]
-    year: Optional[int]
-    obtained_utc: Optional[datetime]
+    abstract: Optional[str] = None
+    arxivId: Optional[str] = None
+    authors: Optional[List[S2PaperAuthor]] = None
+    citationVelocity: Optional[int] = None
+    citations: Optional[List[S2Reference]] = None
+    corpusId: Optional[int] = None
+    doi: Optional[str] = None
+    fieldsOfStudy: Optional[List[str]] = None
+    influentialCitationCount: Optional[int] = None
+    is_open_access: Optional[bool] = None
+    is_publisher_licensed: Optional[bool] = None
+    paperId: Optional[str] = None
+    references: Optional[List[S2Reference]] = None
+    title: Optional[str] = None
+    topics: Optional[List[S2Topic]] = None
+    url: Optional[str] = None
+    venue: Optional[str] = None
+    year: Optional[int] = None
+    obtained_utc: Optional[datetime] = None

 class S2AuthorPaper(BaseModel):
@@ -167,10 +167,10 @@
             Publication year of the paper

     """
-    paperId: Optional[str]
-    title: Optional[str]
-    url: Optional[str]
-    year: Optional[int]
+    paperId: Optional[str] = None
+    title: Optional[str] = None
+    url: Optional[str] = None
+    year: Optional[int] = None

 class S2Author(BaseModel):
@@ -195,10 +195,10 @@
             UTC datetime when obtained from API (converted to and from
             ISO 8601 by pydantic in JSON (de)serialization)
     """
-    aliases: Optional[List[str]]
-    authorId: Optional[str]
-    influentialCitationCount: Optional[int]
-    name: Optional[str]
-    papers: Optional[List[S2AuthorPaper]]
-    url: Optional[str]
-    obtained_utc: Optional[datetime]
+    aliases: Optional[List[str]] = None
+    authorId: Optional[str] = None
+    influentialCitationCount: Optional[int] = None
+    name: Optional[str] = None
+    papers: Optional[List[S2AuthorPaper]] = None
+    url: Optional[str] = None
+    obtained_utc: Optional[datetime] = None

FROM mirror.gcr.io/python:3.12.11

ENV PIP_INDEX_URL=http://localhost:5000/snapshot/2025-07-31
ENV PIP_TRUSTED_HOST=localhost

WORKDIR /work

COPY mirandrom__PyS2 .

RUN bash /work/setup_mirandrom__PyS2.sh

ENTRYPOINT ["bash"]
CMD ["/work/test_mirandrom__PyS2.sh"]

alabaster==1.0.0
annotated-types==0.7.0
babel==2.17.0
betamax==0.9.0
certifi==2025.7.14
charset-normalizer==3.4.2
docutils==0.21.2
idna==3.10
imagesize==1.4.1
iniconfig==2.1.0
Jinja2==3.1.6
MarkupSafe==3.0.2
packaging==25.0
pluggy==1.6.0
pydantic==2.11.7
pydantic_core==2.33.2
Pygments==2.19.2
pys2 @ file:///work
pytest==8.4.1
requests==2.32.4
roman-numerals-py==3.1.0
snowballstemmer==3.0.1
Sphinx==8.2.3
sphinx-autodoc-typehints==3.2.0
sphinxcontrib-applehelp==2.0.0
sphinxcontrib-devhelp==2.0.0
sphinxcontrib-htmlhelp==2.1.0
sphinxcontrib-jsmath==1.0.1
sphinxcontrib-qthelp==2.0.0
sphinxcontrib-serializinghtml==2.0.0
typing-inspection==0.4.1
typing_extensions==4.14.1
urllib3==2.5.0

tests/db/test_json.py, tests/graph/test_builder.py, tests/test_api.py, tests/store/test_json.py, tests/graph/test_hopper.py