From dc5046d2dfb02bc89d2d4420c64811a9a5c3ce5c Mon Sep 17 00:00:00 2001 From: rajeswari1301 Date: Fri, 3 Apr 2026 08:22:42 -0700 Subject: [PATCH 1/2] Switch to only pyproject.toml --- MANIFEST.in | 16 ++++++ docassemble/AssemblyLine/requirements.txt | 9 ---- pyproject.toml | 14 ++++++ setup.cfg | 2 - setup.py | 60 ----------------------- 5 files changed, 30 insertions(+), 71 deletions(-) delete mode 100644 docassemble/AssemblyLine/requirements.txt delete mode 100644 setup.cfg delete mode 100644 setup.py diff --git a/MANIFEST.in b/MANIFEST.in index bb3ec5f0..2ba535d2 100644 --- a/MANIFEST.in +++ b/MANIFEST.in @@ -1 +1,17 @@ include README.md +graft docassemble/AssemblyLine/data +recursive-exclude * *.egg-info +recursive-exclude .git * +recursive-exclude venv * +recursive-exclude .github * +recursive-exclude .pytest_cache * +recursive-exclude .vscode * +recursive-exclude build * +recursive-exclude dist * +recursive-exclude * __pycache__ +recursive-exclude * *.pyc +recursive-exclude * *.pyo +recursive-exclude * *.orig +recursive-exclude * *~ +recursive-exclude * *.bak +recursive-exclude * *.swp \ No newline at end of file diff --git a/docassemble/AssemblyLine/requirements.txt b/docassemble/AssemblyLine/requirements.txt deleted file mode 100644 index 50ac54ef..00000000 --- a/docassemble/AssemblyLine/requirements.txt +++ /dev/null @@ -1,9 +0,0 @@ -docassemble.base>=1.3 -docassemble.webapp -mypy -pandas-stubs -sqlalchemy[mypy] -types-PyYAML -PyGithub -types-requests -types-psycopg2 \ No newline at end of file diff --git a/pyproject.toml b/pyproject.toml index c3c91fd8..4e5e1a1b 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -62,3 +62,17 @@ ignore_missing_imports = true [[tool.mypy.overrides]] module = "backports.*" ignore_missing_imports = true + +[dependency-groups] +dev = [ + "docassemble.base>=1.3", + "docassemble.webapp", + "mypy", + "pandas-stubs", + "sqlalchemy[mypy]", + "types-PyYAML", + "PyGithub", + "types-requests", + "types-psycopg2", +] + diff --git a/setup.cfg b/setup.cfg deleted file mode 100644 index 08aedd7e..00000000 --- a/setup.cfg +++ /dev/null @@ -1,2 +0,0 @@ -[metadata] -description_file = README.md diff --git a/setup.py b/setup.py deleted file mode 100644 index d223a5ea..00000000 --- a/setup.py +++ /dev/null @@ -1,60 +0,0 @@ -import os -import sys -from setuptools import setup, find_namespace_packages -from fnmatch import fnmatchcase -from distutils.util import convert_path - -standard_exclude = ('*.pyc', '*~', '.*', '*.bak', '*.swp*') -standard_exclude_directories = ('.*', 'CVS', '_darcs', './build', './dist', 'EGG-INFO', '*.egg-info') - -def find_package_data(where='.', package='', exclude=standard_exclude, exclude_directories=standard_exclude_directories): - out = {} - stack = [(convert_path(where), '', package)] - while stack: - where, prefix, package = stack.pop(0) - for name in os.listdir(where): - fn = os.path.join(where, name) - if os.path.isdir(fn): - bad_name = False - for pattern in exclude_directories: - if (fnmatchcase(name, pattern) - or fn.lower() == pattern.lower()): - bad_name = True - break - if bad_name: - continue - if os.path.isfile(os.path.join(fn, '__init__.py')): - if not package: - new_package = name - else: - new_package = package + '.' + name - stack.append((fn, '', new_package)) - else: - stack.append((fn, prefix + name + '/', package)) - else: - bad_name = False - for pattern in exclude: - if (fnmatchcase(name, pattern) - or fn.lower() == pattern.lower()): - bad_name = True - break - if bad_name: - continue - out.setdefault(package, []).append(prefix+name) - return out - -setup(name='docassemble.AssemblyLine', - version='4.5.0', - description=(''), - long_description='# Suffolk LIT Lab Document Assembly Line\r\n\r\n[![PyPI version](https://badge.fury.io/py/docassemble-AssemblyLine.svg)](https://badge.fury.io/py/docassemble-AssemblyLine)\r\n\r\ndrawing\r\n\r\nThe Assembly Line Project is a collection of volunteers, students, and institutions who joined together\r\nduring the COVID-19 pandemic to help increase access to the court system. Our vision is mobile-friendly,\r\neasy to use **guided** online forms that help empower litigants to access the court remotely.\r\n\r\nOur signature project is [CourtFormsOnline.org](https://courtformsonline.org).\r\n\r\nWe designed a step-by-step, assembly line style process for automating court forms on top of Docassemble\r\nand built several tools along the way that **you** can use in your home jurisdiction.\r\n\r\nThis package contains **runtime code** and **pre-written questions** to support authoring robust, \r\nconsistent, and attractive Docassemble interviews that help complete court forms.\r\n\r\nRead more on our [documentation page](https://suffolklitlab.org/docassemble-AssemblyLine-documentation/).\r\n\r\n\r\n# Related repositories\r\n\r\n* https://github.com/SuffolkLitLab/docassemble-ALWeaver\r\n* https://github.com/SuffolkLitLab/docassemble-ALMassachusetts\r\n* https://github.com/SuffolkLitLab/docassemble-MassAccess\r\n* https://github.com/SuffolkLitLab/docassemble-ALThemeTemplate\r\n* https://github.com/SuffolkLitLab/EfileProxyServer\r\n\r\n# Documentation\r\n\r\nhttps://suffolklitlab.org/docassemble-AssemblyLine-documentation/\r\n\r\n# Installation\r\n\r\n## Menu-driven installation\r\n\r\nThe recommended installation method is with the [guided installation script](https://suffolklitlab.org/docassemble-AssemblyLine-documentation/docs/installation).\r\n\r\n## Manual installation\r\n\r\nNormally you do not need to manually install the Assembly Line. Use the [installation script](https://suffolklitlab.org/docassemble-AssemblyLine-documentation/docs/installation)\r\nif you can. The instructions below are for your optional reference.\r\n\r\nThis package depends on the following configuration changes on your Docassemble server:\r\n\r\n* Ensure that [font-awesome](https://docassemble.org/docs/config.html#default%20icons) is enabled (this may be on by default:\r\n```yaml\r\ndefault icons: font awesome\r\n```\r\n* Add a [Google API key](https://docassemble.org/docs/config.html#google) that has access to:\r\n * Google Places API\r\n * Google Geocoding API\r\n* Add a [VoiceRSS API key](https://docassemble.org/docs/config.html#voicerss)\r\n* Add a [Twilio API key](https://docassemble.org/docs/config.html#twilio) for SMS support\r\n* Add an email account: [Mailgun](https://docassemble.org/docs/config.html#mailgun%20api) or [SendGrid](https://docassemble.org/docs/config.html#sendgrid%20api) recommended for email support\r\n* To show package update time and to enable the feedback form, add a GitHub Private Access token to your config.yml file, like this:\r\n```yaml\r\n# Needs access to create new issues on repositories\r\ngithub issues:\r\n username: "suffolklitlab-issues"\r\n token: "12345"\r\n# Does not need any special access to public repositories \r\ngithub readonly:\r\n username: "suffolklitlab-issues"\r\n password: "45678"\r\n type: "basic"\r\n```\r\n* If you are also using the [Assembly Line Weaver](https://github.com/SuffolkLITLab/docassemble-assemblylinewizard), you may want to set up a [Docassemble API key](https://docassemble.org/docs/api.html#manage_api) in your config.yml file to allow you to install packages automatically, like this:\r\n```yaml\r\ninstall packages api key: 12345\r\n```\r\n\r\n# Migration\r\n\r\nSee [discussion here](https://github.com/SuffolkLITLab/docassemble-AssemblyLine/issues/69)\r\n\r\n\r\n# ALDocument class\r\n\r\n## Purpose\r\n\r\nThe ALDocument class is a small utility library that makes it simpler to use the following features in an interview:\r\n\r\n* Conditional assembly of multiple, optional documents that are triggered in different ways in your interview\r\n* An addendum for PDF files that makes it simple to deal with overflow text\r\n* A customizable download screen that lists the documents in a neat table\r\n* A customizable "send" button that allows the user to email the final forms to a location of their choice\r\n\r\nHere is a small snippet that you can copy and modify that shows how to use the most important features of the ALDocument class.\r\n\r\n```\r\n---\r\nobjects:\r\n - CRA_Motion_to_Dismiss_attachment: ALDocument.using(filename="CRA_Motion_to_Dismiss", title="Motion to Dismiss CRA", enabled=True, has_addendum=True, default_overflow_message="[See addendum]") \r\n---\r\nobjects:\r\n - al_user_bundle: ALDocumentBundle.using(elements=[CRA_Motion_to_Dismiss_attachment], title="Forms to download and deliver to court", filename="motion_to_dismiss_CRA.pdf")\r\n - al_court_bundle: ALDocumentBundle.using(elements=[CRA_Motion_to_Dismiss_attachment], title="Forms to download and deliver to court", filename="motion_to_dismiss_CRA.pdf")\r\n---\r\ngeneric object: ALDocument\r\nattachment:\r\n variable name: x.addendum\r\n docx template file: docx_addendum.docx\r\n---\r\ncode: |\r\n CRA_Motion_to_Dismiss_attachment.overflow_fields[\'reasons_for_request\'].overflow_trigger = 640\r\n CRA_Motion_to_Dismiss_attachment.overflow_fields[\'reasons_for_request\'].label = "Reasons for request"\r\n CRA_Motion_to_Dismiss_attachment.overflow_fields.gathered = True\r\n \r\n---\r\nattachment:\r\n variable name: CRA_Motion_to_Dismiss_attachment[i]\r\n name: CRA Motion to Dismiss\r\n filename: CRA_Motion_to_Dismiss\r\n skip undefined: True\r\n pdf template file: CRA_Motion_to_Dismiss.pdf\r\n fields: \r\n - "court_county": ${ trial_court.address.county }\r\n - "docket_number": ${ docket_number }\r\n - "user_signature": ${ users[0].signature_if_final(i) }\r\n - "signature_date": ${ signature_date }\r\n```\r\n\r\nIt is very common to have a *contingent* document in ALDocument. If your document is contingent, remove the `enabled=True` from the object declaration, and use\r\nsome other method to "turn on" the attachment.\r\n\r\nE.g.,\r\n\r\n```\r\ncode: |\r\n CRA_Motion_to_Dismiss_attachment.enabled = condition1 and condition2\r\n```\r\n\r\n# Changelog\r\n\r\nSee [CHANGELOG.MD](https://github.com/SuffolkLITLab/docassemble-AssemblyLine/blob/main/CHANGELOG.md)\r\n', - long_description_content_type='text/markdown', - author='Suffolk Legal Innovation and Technology Lab', - author_email='qsteenhuis@suffolk.edu', - license='The MIT License (MIT)', - url='https://courtformsonline.org', - packages=find_namespace_packages(), - install_requires=['docassemble.ALToolbox>=0.16.0', 'docassemble.GithubFeedbackForm>=0.4.1.1'], - zip_safe=False, - package_data=find_package_data(where='docassemble/AssemblyLine/', package='docassemble.AssemblyLine'), - ) - From c78befe418f130d3798e7898153bf18b1affc190 Mon Sep 17 00:00:00 2001 From: Bryce Willey Date: Mon, 6 Apr 2026 17:03:15 -0400 Subject: [PATCH 2/2] Update DOCASSEMBLECLI_VERSION in workflow Default version is too old, doesn't work with pyproject.toml only projects. --- .github/workflows/run_form_tests.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/workflows/run_form_tests.yml b/.github/workflows/run_form_tests.yml index e84a9e23..043de7f0 100644 --- a/.github/workflows/run_form_tests.yml +++ b/.github/workflows/run_form_tests.yml @@ -39,6 +39,7 @@ jobs: uses: suffolkLITLab/ALKiln/action_for_github_server@v5 with: SHOW_DOCKER_OUTPUT: "${{ github.event.inputs.show_docker_output }}" + DOCASSEMBLECLI_VERSION: "0.0.25" - run: echo "ALKiln finished starting the isolated GitHub docassemble server" shell: bash - name: Use ALKiln to run tests