modwire 2.1.0__tar.gz → 2.2.0__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- modwire-2.2.0/.github/workflows/large-repo-fixtures.yml +88 -0
- {modwire-2.1.0 → modwire-2.2.0}/PKG-INFO +1 -1
- {modwire-2.1.0 → modwire-2.2.0}/pyproject.toml +3 -2
- {modwire-2.1.0 → modwire-2.2.0}/src/modwire/_version.py +3 -3
- {modwire-2.1.0 → modwire-2.2.0}/src/modwire/extraction/manifest.py +5 -4
- modwire-2.2.0/src/modwire/extractors/base.py +781 -0
- modwire-2.2.0/src/modwire/extractors/php.py +348 -0
- modwire-2.2.0/src/modwire/extractors/python.py +472 -0
- modwire-2.2.0/src/modwire/extractors/resources.py +29 -0
- modwire-2.2.0/src/modwire/extractors/scripts/__init__.py +2 -0
- {modwire-2.1.0 → modwire-2.2.0}/src/modwire/extractors/scripts/php_extractor.php +25 -1
- {modwire-2.1.0 → modwire-2.2.0}/src/modwire/extractors/scripts/typescript_extractor.js +29 -3
- {modwire-2.1.0 → modwire-2.2.0}/src/modwire/extractors/typescript.py +27 -6
- {modwire-2.1.0 → modwire-2.2.0}/src/modwire/metadata.py +16 -20
- {modwire-2.1.0 → modwire-2.2.0}/src/modwire.egg-info/PKG-INFO +1 -1
- {modwire-2.1.0 → modwire-2.2.0}/src/modwire.egg-info/SOURCES.txt +7 -1
- modwire-2.2.0/tests/large_projects/README.md +47 -0
- modwire-2.2.0/tests/large_projects/fixtures.json +242 -0
- modwire-2.2.0/tests/large_projects/run_large_project_fixtures.py +534 -0
- {modwire-2.1.0 → modwire-2.2.0}/tests/test_api.py +204 -34
- modwire-2.1.0/src/modwire/extractors/base.py +0 -356
- modwire-2.1.0/src/modwire/extractors/php.py +0 -199
- modwire-2.1.0/src/modwire/extractors/python.py +0 -150
- {modwire-2.1.0 → modwire-2.2.0}/.github/ISSUE_TEMPLATE/bug_report.yml +0 -0
- {modwire-2.1.0 → modwire-2.2.0}/.github/ISSUE_TEMPLATE/config.yml +0 -0
- {modwire-2.1.0 → modwire-2.2.0}/.github/ISSUE_TEMPLATE/feature_request.yml +0 -0
- {modwire-2.1.0 → modwire-2.2.0}/.github/PULL_REQUEST_TEMPLATE.md +0 -0
- {modwire-2.1.0 → modwire-2.2.0}/.github/workflows/ci.yml +0 -0
- {modwire-2.1.0 → modwire-2.2.0}/.github/workflows/release.yml +0 -0
- {modwire-2.1.0 → modwire-2.2.0}/.gitignore +0 -0
- {modwire-2.1.0 → modwire-2.2.0}/CONTRIBUTING.md +0 -0
- {modwire-2.1.0 → modwire-2.2.0}/LICENSE +0 -0
- {modwire-2.1.0 → modwire-2.2.0}/README.md +0 -0
- {modwire-2.1.0 → modwire-2.2.0}/docs/wiki/Development-checks.md +0 -0
- {modwire-2.1.0 → modwire-2.2.0}/docs/wiki/Home.md +0 -0
- {modwire-2.1.0 → modwire-2.2.0}/docs/wiki/Reporting-bugs.md +0 -0
- {modwire-2.1.0 → modwire-2.2.0}/docs/wiki/Requesting-features.md +0 -0
- {modwire-2.1.0 → modwire-2.2.0}/setup.cfg +0 -0
- {modwire-2.1.0 → modwire-2.2.0}/show_test_source_files.py +0 -0
- {modwire-2.1.0 → modwire-2.2.0}/src/modwire/__init__.py +0 -0
- {modwire-2.1.0 → modwire-2.2.0}/src/modwire/architecture/__init__.py +0 -0
- {modwire-2.1.0 → modwire-2.2.0}/src/modwire/architecture/analyzers.py +0 -0
- {modwire-2.1.0 → modwire-2.2.0}/src/modwire/architecture/config.py +0 -0
- {modwire-2.1.0 → modwire-2.2.0}/src/modwire/architecture/insights.py +0 -0
- {modwire-2.1.0 → modwire-2.2.0}/src/modwire/architecture/matching.py +0 -0
- {modwire-2.1.0 → modwire-2.2.0}/src/modwire/architecture/policy.py +0 -0
- {modwire-2.1.0 → modwire-2.2.0}/src/modwire/architecture/render.py +0 -0
- {modwire-2.1.0 → modwire-2.2.0}/src/modwire/architecture/violations.py +0 -0
- {modwire-2.1.0 → modwire-2.2.0}/src/modwire/callables.py +0 -0
- {modwire-2.1.0 → modwire-2.2.0}/src/modwire/definitions.py +0 -0
- {modwire-2.1.0 → modwire-2.2.0}/src/modwire/exports.py +0 -0
- {modwire-2.1.0 → modwire-2.2.0}/src/modwire/extraction/__init__.py +0 -0
- {modwire-2.1.0 → modwire-2.2.0}/src/modwire/extraction/cache.py +0 -0
- {modwire-2.1.0 → modwire-2.2.0}/src/modwire/extraction/models.py +0 -0
- {modwire-2.1.0 → modwire-2.2.0}/src/modwire/extraction/roots.py +0 -0
- {modwire-2.1.0 → modwire-2.2.0}/src/modwire/extraction/serialization.py +0 -0
- {modwire-2.1.0 → modwire-2.2.0}/src/modwire/extraction/service.py +0 -0
- {modwire-2.1.0 → modwire-2.2.0}/src/modwire/extractors/__init__.py +0 -0
- {modwire-2.1.0 → modwire-2.2.0}/src/modwire/extractors/loader.py +0 -0
- {modwire-2.1.0 → modwire-2.2.0}/src/modwire/extractors/scripts/python_extractor.py +0 -0
- {modwire-2.1.0 → modwire-2.2.0}/src/modwire/graph.py +0 -0
- {modwire-2.1.0 → modwire-2.2.0}/src/modwire/shape/__init__.py +0 -0
- {modwire-2.1.0 → modwire-2.2.0}/src/modwire/shape/config.py +0 -0
- {modwire-2.1.0 → modwire-2.2.0}/src/modwire/shape/evaluator.py +0 -0
- {modwire-2.1.0 → modwire-2.2.0}/src/modwire/shape/rules.py +0 -0
- {modwire-2.1.0 → modwire-2.2.0}/src/modwire/shape/violations.py +0 -0
- {modwire-2.1.0 → modwire-2.2.0}/src/modwire/testing/__init__.py +0 -0
- {modwire-2.1.0 → modwire-2.2.0}/src/modwire/testing/factories.py +0 -0
- {modwire-2.1.0 → modwire-2.2.0}/src/modwire.egg-info/dependency_links.txt +0 -0
- {modwire-2.1.0 → modwire-2.2.0}/src/modwire.egg-info/requires.txt +0 -0
- {modwire-2.1.0 → modwire-2.2.0}/src/modwire.egg-info/top_level.txt +0 -0
- {modwire-2.1.0 → modwire-2.2.0}/tests/apps/php/ignored/generated.php +0 -0
- {modwire-2.1.0 → modwire-2.2.0}/tests/apps/php/src/application/use_cases/activate.php +0 -0
- {modwire-2.1.0 → modwire-2.2.0}/tests/apps/php/src/domain/model/user.php +0 -0
- {modwire-2.1.0 → modwire-2.2.0}/tests/apps/php/src/domain/services/policy.php +0 -0
- {modwire-2.1.0 → modwire-2.2.0}/tests/apps/php/src/interfaces/http/controller.php +0 -0
- {modwire-2.1.0 → modwire-2.2.0}/tests/apps/python/ignored/generated.py +0 -0
- {modwire-2.1.0 → modwire-2.2.0}/tests/apps/python/src/application/use_cases/activate.py +0 -0
- {modwire-2.1.0 → modwire-2.2.0}/tests/apps/python/src/domain/model/user.py +0 -0
- {modwire-2.1.0 → modwire-2.2.0}/tests/apps/python/src/domain/services/policy.py +0 -0
- {modwire-2.1.0 → modwire-2.2.0}/tests/apps/python/src/interfaces/http/controller.py +0 -0
- {modwire-2.1.0 → modwire-2.2.0}/tests/apps/typescript/ignored/generated.ts +0 -0
- {modwire-2.1.0 → modwire-2.2.0}/tests/apps/typescript/src/application/use_cases/activate.ts +0 -0
- {modwire-2.1.0 → modwire-2.2.0}/tests/apps/typescript/src/domain/model/profile.tsx +0 -0
- {modwire-2.1.0 → modwire-2.2.0}/tests/apps/typescript/src/domain/model/user.ts +0 -0
- {modwire-2.1.0 → modwire-2.2.0}/tests/apps/typescript/src/domain/services/audit.js +0 -0
- {modwire-2.1.0 → modwire-2.2.0}/tests/apps/typescript/src/domain/services/policy.ts +0 -0
- {modwire-2.1.0 → modwire-2.2.0}/tests/apps/typescript/src/interfaces/http/controller.ts +0 -0
- {modwire-2.1.0 → modwire-2.2.0}/tests/apps/typescript/src/interfaces/http/view.jsx +0 -0
- {modwire-2.1.0 → modwire-2.2.0}/tests/test_architecture_api.py +0 -0
- {modwire-2.1.0 → modwire-2.2.0}/tests/test_standalone.py +0 -0
- {modwire-2.1.0 → modwire-2.2.0}/uv.lock +0 -0
|
@@ -0,0 +1,88 @@
|
|
|
1
|
+
name: Large Repository Fixtures
|
|
2
|
+
|
|
3
|
+
on:
|
|
4
|
+
workflow_dispatch:
|
|
5
|
+
inputs:
|
|
6
|
+
fixture:
|
|
7
|
+
description: "Fixture id to run, or all."
|
|
8
|
+
required: true
|
|
9
|
+
default: "all"
|
|
10
|
+
type: choice
|
|
11
|
+
options:
|
|
12
|
+
- all
|
|
13
|
+
- django
|
|
14
|
+
- ansible
|
|
15
|
+
- salt
|
|
16
|
+
- vscode
|
|
17
|
+
- angular
|
|
18
|
+
- typescript
|
|
19
|
+
- wordpress
|
|
20
|
+
- drupal
|
|
21
|
+
- moodle
|
|
22
|
+
mode:
|
|
23
|
+
description: "Fixture execution mode."
|
|
24
|
+
required: true
|
|
25
|
+
default: "enclosure"
|
|
26
|
+
type: choice
|
|
27
|
+
options:
|
|
28
|
+
- enclosure
|
|
29
|
+
- modwire
|
|
30
|
+
- both
|
|
31
|
+
command-timeout:
|
|
32
|
+
description: "Seconds allowed for each enclosure command."
|
|
33
|
+
required: true
|
|
34
|
+
default: "60"
|
|
35
|
+
schedule:
|
|
36
|
+
- cron: "17 3 * * 0"
|
|
37
|
+
|
|
38
|
+
jobs:
|
|
39
|
+
large-fixture:
|
|
40
|
+
name: ${{ matrix.fixture }}
|
|
41
|
+
runs-on: ubuntu-latest
|
|
42
|
+
timeout-minutes: 60
|
|
43
|
+
if: github.event_name != 'workflow_dispatch' || inputs.fixture == 'all' || inputs.fixture == matrix.fixture
|
|
44
|
+
strategy:
|
|
45
|
+
fail-fast: false
|
|
46
|
+
matrix:
|
|
47
|
+
fixture:
|
|
48
|
+
- django
|
|
49
|
+
- ansible
|
|
50
|
+
- salt
|
|
51
|
+
- vscode
|
|
52
|
+
- angular
|
|
53
|
+
- typescript
|
|
54
|
+
- wordpress
|
|
55
|
+
- drupal
|
|
56
|
+
- moodle
|
|
57
|
+
|
|
58
|
+
steps:
|
|
59
|
+
- name: Check out repository
|
|
60
|
+
uses: actions/checkout@v4
|
|
61
|
+
|
|
62
|
+
- name: Set up Python
|
|
63
|
+
uses: actions/setup-python@v5
|
|
64
|
+
with:
|
|
65
|
+
python-version: "3.13"
|
|
66
|
+
|
|
67
|
+
- name: Set up Node.js
|
|
68
|
+
uses: actions/setup-node@v4
|
|
69
|
+
with:
|
|
70
|
+
node-version: "20"
|
|
71
|
+
|
|
72
|
+
- name: Set up PHP
|
|
73
|
+
uses: shivammathur/setup-php@v2
|
|
74
|
+
with:
|
|
75
|
+
php-version: "8.3"
|
|
76
|
+
|
|
77
|
+
- name: Install enclosure and local modwire
|
|
78
|
+
run: |
|
|
79
|
+
python -m pip install --upgrade pip
|
|
80
|
+
python -m pip install "enclosure @ git+https://github.com/9orky/enclosure.git"
|
|
81
|
+
python -m pip install -e .
|
|
82
|
+
|
|
83
|
+
- name: Run large fixture
|
|
84
|
+
run: >
|
|
85
|
+
python tests/large_projects/run_large_project_fixtures.py
|
|
86
|
+
--fixture "${{ matrix.fixture }}"
|
|
87
|
+
--mode "${{ github.event_name == 'workflow_dispatch' && inputs.mode || 'enclosure' }}"
|
|
88
|
+
--command-timeout "${{ github.event_name == 'workflow_dispatch' && inputs['command-timeout'] || '60' }}"
|
|
@@ -18,7 +18,7 @@ version_tuple: tuple[int | str, ...]
|
|
|
18
18
|
commit_id: str | None
|
|
19
19
|
__commit_id__: str | None
|
|
20
20
|
|
|
21
|
-
__version__ = version = '2.
|
|
22
|
-
__version_tuple__ = version_tuple = (2,
|
|
21
|
+
__version__ = version = '2.2.0'
|
|
22
|
+
__version_tuple__ = version_tuple = (2, 2, 0)
|
|
23
23
|
|
|
24
|
-
__commit_id__ = commit_id = '
|
|
24
|
+
__commit_id__ = commit_id = 'gc116aabfa'
|
|
@@ -8,6 +8,7 @@ from pathlib import Path
|
|
|
8
8
|
from .._version import __version__
|
|
9
9
|
from ..extractors import load_extractor
|
|
10
10
|
from ..extractors.base import _collect_extraction_targets
|
|
11
|
+
from ..extractors.resources import extractor_script_path
|
|
11
12
|
from .models import SourceManifest, SourceManifestEntry
|
|
12
13
|
from .roots import (
|
|
13
14
|
DEFAULT_SOURCE_ROOTS,
|
|
@@ -57,14 +58,14 @@ def discover_sources(
|
|
|
57
58
|
mtime_ns=stat.st_mtime_ns,
|
|
58
59
|
)
|
|
59
60
|
)
|
|
60
|
-
extractor_path = (
|
|
61
|
-
Path(__file__).parents[1] / "extractors" / "scripts" / extractor.extractor_file
|
|
62
|
-
).resolve()
|
|
63
61
|
runtime_path = shutil.which(extractor.command) or ""
|
|
64
62
|
runtime_mtime_ns = 0
|
|
65
63
|
if runtime_path != "":
|
|
66
64
|
runtime_mtime_ns = Path(runtime_path).stat().st_mtime_ns
|
|
67
65
|
|
|
66
|
+
with extractor_script_path(extractor.extractor_file) as extractor_path:
|
|
67
|
+
extractor_mtime_ns = extractor_path.stat().st_mtime_ns
|
|
68
|
+
|
|
68
69
|
return SourceManifest(
|
|
69
70
|
language=language,
|
|
70
71
|
workspace_root=(
|
|
@@ -83,7 +84,7 @@ def discover_sources(
|
|
|
83
84
|
runtime_mtime_ns=runtime_mtime_ns,
|
|
84
85
|
extractor_file=extractor.extractor_file,
|
|
85
86
|
extractor_path=extractor_path,
|
|
86
|
-
extractor_mtime_ns=
|
|
87
|
+
extractor_mtime_ns=extractor_mtime_ns,
|
|
87
88
|
modwire_version=__version__,
|
|
88
89
|
files_found=files_found,
|
|
89
90
|
files_checked=len(entries),
|