emdbva 0.0.1.dev143__tar.gz → 0.0.1.dev144__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.
Files changed (53) hide show
  1. {emdbva-0.0.1.dev143 → emdbva-0.0.1.dev144}/MANIFEST.in +1 -0
  2. {emdbva-0.0.1.dev143/emdbva.egg-info → emdbva-0.0.1.dev144}/PKG-INFO +1 -1
  3. {emdbva-0.0.1.dev143 → emdbva-0.0.1.dev144/emdbva.egg-info}/PKG-INFO +1 -1
  4. {emdbva-0.0.1.dev143 → emdbva-0.0.1.dev144}/emdbva.egg-info/SOURCES.txt +3 -0
  5. {emdbva-0.0.1.dev143 → emdbva-0.0.1.dev144}/setup.py +3 -0
  6. {emdbva-0.0.1.dev143 → emdbva-0.0.1.dev144}/va/preparation.py +14 -13
  7. emdbva-0.0.1.dev144/va/schemas/__init__.py +1 -0
  8. emdbva-0.0.1.dev144/va/schemas/emdb_entry_full.schema.json +2771 -0
  9. emdbva-0.0.1.dev144/va/schemas/loader.py +54 -0
  10. {emdbva-0.0.1.dev143 → emdbva-0.0.1.dev144}/va/version.py +1 -1
  11. {emdbva-0.0.1.dev143 → emdbva-0.0.1.dev144}/LICENSE +0 -0
  12. {emdbva-0.0.1.dev143 → emdbva-0.0.1.dev144}/README.rst +0 -0
  13. {emdbva-0.0.1.dev143 → emdbva-0.0.1.dev144}/emdbva.egg-info/dependency_links.txt +0 -0
  14. {emdbva-0.0.1.dev143 → emdbva-0.0.1.dev144}/emdbva.egg-info/entry_points.txt +0 -0
  15. {emdbva-0.0.1.dev143 → emdbva-0.0.1.dev144}/emdbva.egg-info/requires.txt +0 -0
  16. {emdbva-0.0.1.dev143 → emdbva-0.0.1.dev144}/emdbva.egg-info/top_level.txt +0 -0
  17. {emdbva-0.0.1.dev143 → emdbva-0.0.1.dev144}/setup.cfg +0 -0
  18. {emdbva-0.0.1.dev143 → emdbva-0.0.1.dev144}/va/PATHS_codon_airflow.py +0 -0
  19. {emdbva-0.0.1.dev143 → emdbva-0.0.1.dev144}/va/__init__.py +0 -0
  20. {emdbva-0.0.1.dev143 → emdbva-0.0.1.dev144}/va/mainva.py +0 -0
  21. {emdbva-0.0.1.dev143 → emdbva-0.0.1.dev144}/va/metrics/__init__.py +0 -0
  22. {emdbva-0.0.1.dev143 → emdbva-0.0.1.dev144}/va/metrics/bars.py +0 -0
  23. {emdbva-0.0.1.dev143 → emdbva-0.0.1.dev144}/va/metrics/connected_percentage.py +0 -0
  24. {emdbva-0.0.1.dev143 → emdbva-0.0.1.dev144}/va/metrics/contour_level_predicator.py +0 -0
  25. {emdbva-0.0.1.dev143 → emdbva-0.0.1.dev144}/va/metrics/emda_mmcc.py +0 -0
  26. {emdbva-0.0.1.dev143 → emdbva-0.0.1.dev144}/va/metrics/emringer.py +0 -0
  27. {emdbva-0.0.1.dev143 → emdbva-0.0.1.dev144}/va/metrics/inclusion.py +0 -0
  28. {emdbva-0.0.1.dev143 → emdbva-0.0.1.dev144}/va/metrics/map_data_validation.py +0 -0
  29. {emdbva-0.0.1.dev143 → emdbva-0.0.1.dev144}/va/metrics/overlap_percentage.py +0 -0
  30. {emdbva-0.0.1.dev143 → emdbva-0.0.1.dev144}/va/metrics/phaserandomization.py +0 -0
  31. {emdbva-0.0.1.dev143 → emdbva-0.0.1.dev144}/va/metrics/phenix_cc.py +0 -0
  32. {emdbva-0.0.1.dev143 → emdbva-0.0.1.dev144}/va/metrics/phenix_mm.py +0 -0
  33. {emdbva-0.0.1.dev143 → emdbva-0.0.1.dev144}/va/metrics/projections.py +0 -0
  34. {emdbva-0.0.1.dev143 → emdbva-0.0.1.dev144}/va/metrics/qscore.py +0 -0
  35. {emdbva-0.0.1.dev143 → emdbva-0.0.1.dev144}/va/metrics/residue_locres.py +0 -0
  36. {emdbva-0.0.1.dev143 → emdbva-0.0.1.dev144}/va/metrics/resmap.py +0 -0
  37. {emdbva-0.0.1.dev143 → emdbva-0.0.1.dev144}/va/metrics/smoc.py +0 -0
  38. {emdbva-0.0.1.dev143 → emdbva-0.0.1.dev144}/va/metrics/strudel.py +0 -0
  39. {emdbva-0.0.1.dev143 → emdbva-0.0.1.dev144}/va/metrics/surfaces.py +0 -0
  40. {emdbva-0.0.1.dev143 → emdbva-0.0.1.dev144}/va/metrics/threedfsc.py +0 -0
  41. {emdbva-0.0.1.dev143 → emdbva-0.0.1.dev144}/va/prepareandrun_codon_airflow.py +0 -0
  42. {emdbva-0.0.1.dev143 → emdbva-0.0.1.dev144}/va/qscores.csv +0 -0
  43. {emdbva-0.0.1.dev143 → emdbva-0.0.1.dev144}/va/utils/Checker.py +0 -0
  44. {emdbva-0.0.1.dev143 → emdbva-0.0.1.dev144}/va/utils/ChimeraxViews.py +0 -0
  45. {emdbva-0.0.1.dev143 → emdbva-0.0.1.dev144}/va/utils/MapProcessor.py +0 -0
  46. {emdbva-0.0.1.dev143 → emdbva-0.0.1.dev144}/va/utils/Model.py +0 -0
  47. {emdbva-0.0.1.dev143 → emdbva-0.0.1.dev144}/va/utils/__init__.py +0 -0
  48. {emdbva-0.0.1.dev143 → emdbva-0.0.1.dev144}/va/utils/cl_weights.pth +0 -0
  49. {emdbva-0.0.1.dev143 → emdbva-0.0.1.dev144}/va/utils/log_utils.py +0 -0
  50. {emdbva-0.0.1.dev143 → emdbva-0.0.1.dev144}/va/utils/misc.py +0 -0
  51. {emdbva-0.0.1.dev143 → emdbva-0.0.1.dev144}/va/utils/rescolor.py +0 -0
  52. {emdbva-0.0.1.dev143 → emdbva-0.0.1.dev144}/va/utils/stars.py +0 -0
  53. {emdbva-0.0.1.dev143 → emdbva-0.0.1.dev144}/va/validationanalysis.py +0 -0
@@ -1,5 +1,6 @@
1
1
  include va/qscores.csv
2
2
  include va/utils/cl_weights.pth
3
+ recursive-include va/schemas *.json
3
4
  exclude va/symmetry.py
4
5
  exclude va/onedepva.py
5
6
  exclude va/PATHS.py
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: emdbva
3
- Version: 0.0.1.dev143
3
+ Version: 0.0.1.dev144
4
4
  Summary: CryoEM validation toolkit
5
5
  Home-page: https://test.pypi.org/project/va/
6
6
  Author: Zhe Wang
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: emdbva
3
- Version: 0.0.1.dev143
3
+ Version: 0.0.1.dev144
4
4
  Summary: CryoEM validation toolkit
5
5
  Home-page: https://test.pypi.org/project/va/
6
6
  Author: Zhe Wang
@@ -36,6 +36,9 @@ va/metrics/smoc.py
36
36
  va/metrics/strudel.py
37
37
  va/metrics/surfaces.py
38
38
  va/metrics/threedfsc.py
39
+ va/schemas/__init__.py
40
+ va/schemas/emdb_entry_full.schema.json
41
+ va/schemas/loader.py
39
42
  va/utils/Checker.py
40
43
  va/utils/ChimeraxViews.py
41
44
  va/utils/MapProcessor.py
@@ -19,6 +19,9 @@ setup(
19
19
  name="emdbva",
20
20
  version=__version__,
21
21
  packages=find_packages(),
22
+ package_data={
23
+ 'va.schemas': ['*.json'],
24
+ },
22
25
  exclude_package_data={
23
26
  'va': ['test/*', 'core/*', 'proc/*', 'validation/*', 'test_data/*'],
24
27
  },
@@ -53,6 +53,7 @@ from va.version import __version__
53
53
  from va.utils.misc import out_json, create_symbolic_link, keep_three_significant_digits
54
54
  from va.utils.MapProcessor import MapProcessor
55
55
  from memory_profiler import profile
56
+ from va.schemas.loader import SchemaLoadError, load_json_schema, schema_candidate_paths, schema_file_path
56
57
 
57
58
  # JSON Schema (optional dependency; code will still run if missing)
58
59
  try:
@@ -314,22 +315,22 @@ class PreParation:
314
315
  copyfile(source, outpath)
315
316
  print(f'Wrote input example to {outpath}')
316
317
 
318
+ def _schema_file_paths(self):
319
+ """Return schema paths in package-first, source-tree-fallback order."""
320
+ return schema_candidate_paths()
321
+
317
322
  def _schema_file_path(self):
318
- """Return the on-disk path to docs/emdb_entry_full.schema.json."""
319
- # preparation.py lives under va/; the schema is stored in sibling docs/.
320
- return os.path.join(os.path.dirname(os.path.dirname(__file__)), 'docs', 'emdb_entry_full.schema.json')
323
+ """Return the first available output-schema path."""
324
+ return schema_file_path()
321
325
 
322
326
  def _load_json_schema(self):
323
- """Load a JSON Schema from docs/emdb_entry_full.schema.json. Returns dict or None."""
324
- path = self._schema_file_path()
325
- if not os.path.isfile(path):
326
- sys.stderr.write(f'[validation] Schema file not found: {path}\n')
327
- return None
327
+ """Load the packaged output schema, falling back to the source-tree copy."""
328
+ self._schema_load_error = None
328
329
  try:
329
- with open(path, 'r', encoding='utf-8') as f:
330
- return json.load(f)
331
- except Exception as e:
332
- sys.stderr.write(f'[validation] Could not load schema "{path}": {e}\n')
330
+ return load_json_schema()
331
+ except SchemaLoadError as exc:
332
+ self._schema_load_error = str(exc)
333
+ sys.stderr.write(self._schema_load_error + '\n')
333
334
  return None
334
335
 
335
336
  @staticmethod
@@ -373,7 +374,7 @@ class PreParation:
373
374
  """
374
375
  schema = self._load_json_schema()
375
376
  if schema is None:
376
- return False, ['Schema file not found or unreadable.']
377
+ return False, [getattr(self, '_schema_load_error', 'Schema file not found or unreadable.')]
377
378
 
378
379
  Validator = self._choose_validator(schema)
379
380
  if Validator is None:
@@ -0,0 +1 @@
1
+ """Packaged JSON schemas used by VA at runtime."""