dcicutils 7.4.2.1b10__tar.gz → 7.4.2.1b12__tar.gz

Sign up to get free protection for your applications and to get access to all the features.

Potentially problematic release.


This version of dcicutils might be problematic. Click here for more details.

Files changed (51) hide show
  1. {dcicutils-7.4.2.1b10 → dcicutils-7.4.2.1b12}/PKG-INFO +1 -1
  2. {dcicutils-7.4.2.1b10 → dcicutils-7.4.2.1b12}/dcicutils/project_utils.py +21 -13
  3. {dcicutils-7.4.2.1b10 → dcicutils-7.4.2.1b12}/pyproject.toml +1 -1
  4. {dcicutils-7.4.2.1b10 → dcicutils-7.4.2.1b12}/setup.py +1 -1
  5. {dcicutils-7.4.2.1b10 → dcicutils-7.4.2.1b12}/LICENSE.txt +0 -0
  6. {dcicutils-7.4.2.1b10 → dcicutils-7.4.2.1b12}/README.rst +0 -0
  7. {dcicutils-7.4.2.1b10 → dcicutils-7.4.2.1b12}/dcicutils/__init__.py +0 -0
  8. {dcicutils-7.4.2.1b10 → dcicutils-7.4.2.1b12}/dcicutils/base.py +0 -0
  9. {dcicutils-7.4.2.1b10 → dcicutils-7.4.2.1b12}/dcicutils/beanstalk_utils.py +0 -0
  10. {dcicutils-7.4.2.1b10 → dcicutils-7.4.2.1b12}/dcicutils/cloudformation_utils.py +0 -0
  11. {dcicutils-7.4.2.1b10 → dcicutils-7.4.2.1b12}/dcicutils/codebuild_utils.py +0 -0
  12. {dcicutils-7.4.2.1b10 → dcicutils-7.4.2.1b12}/dcicutils/command_utils.py +0 -0
  13. {dcicutils-7.4.2.1b10 → dcicutils-7.4.2.1b12}/dcicutils/common.py +0 -0
  14. {dcicutils-7.4.2.1b10 → dcicutils-7.4.2.1b12}/dcicutils/creds_utils.py +0 -0
  15. {dcicutils-7.4.2.1b10 → dcicutils-7.4.2.1b12}/dcicutils/data_utils.py +0 -0
  16. {dcicutils-7.4.2.1b10 → dcicutils-7.4.2.1b12}/dcicutils/deployment_utils.py +0 -0
  17. {dcicutils-7.4.2.1b10 → dcicutils-7.4.2.1b12}/dcicutils/diff_utils.py +0 -0
  18. {dcicutils-7.4.2.1b10 → dcicutils-7.4.2.1b12}/dcicutils/docker_utils.py +0 -0
  19. {dcicutils-7.4.2.1b10 → dcicutils-7.4.2.1b12}/dcicutils/ecr_scripts.py +0 -0
  20. {dcicutils-7.4.2.1b10 → dcicutils-7.4.2.1b12}/dcicutils/ecr_utils.py +0 -0
  21. {dcicutils-7.4.2.1b10 → dcicutils-7.4.2.1b12}/dcicutils/ecs_utils.py +0 -0
  22. {dcicutils-7.4.2.1b10 → dcicutils-7.4.2.1b12}/dcicutils/env_base.py +0 -0
  23. {dcicutils-7.4.2.1b10 → dcicutils-7.4.2.1b12}/dcicutils/env_manager.py +0 -0
  24. {dcicutils-7.4.2.1b10 → dcicutils-7.4.2.1b12}/dcicutils/env_scripts.py +0 -0
  25. {dcicutils-7.4.2.1b10 → dcicutils-7.4.2.1b12}/dcicutils/env_utils.py +0 -0
  26. {dcicutils-7.4.2.1b10 → dcicutils-7.4.2.1b12}/dcicutils/env_utils_legacy.py +0 -0
  27. {dcicutils-7.4.2.1b10 → dcicutils-7.4.2.1b12}/dcicutils/es_utils.py +0 -0
  28. {dcicutils-7.4.2.1b10 → dcicutils-7.4.2.1b12}/dcicutils/exceptions.py +0 -0
  29. {dcicutils-7.4.2.1b10 → dcicutils-7.4.2.1b12}/dcicutils/ff_mocks.py +0 -0
  30. {dcicutils-7.4.2.1b10 → dcicutils-7.4.2.1b12}/dcicutils/ff_utils.py +0 -0
  31. {dcicutils-7.4.2.1b10 → dcicutils-7.4.2.1b12}/dcicutils/function_cache_decorator.py +0 -0
  32. {dcicutils-7.4.2.1b10 → dcicutils-7.4.2.1b12}/dcicutils/glacier_utils.py +0 -0
  33. {dcicutils-7.4.2.1b10 → dcicutils-7.4.2.1b12}/dcicutils/jh_utils.py +0 -0
  34. {dcicutils-7.4.2.1b10 → dcicutils-7.4.2.1b12}/dcicutils/kibana/dashboards.json +0 -0
  35. {dcicutils-7.4.2.1b10 → dcicutils-7.4.2.1b12}/dcicutils/kibana/readme.md +0 -0
  36. {dcicutils-7.4.2.1b10 → dcicutils-7.4.2.1b12}/dcicutils/lang_utils.py +0 -0
  37. {dcicutils-7.4.2.1b10 → dcicutils-7.4.2.1b12}/dcicutils/log_utils.py +0 -0
  38. {dcicutils-7.4.2.1b10 → dcicutils-7.4.2.1b12}/dcicutils/misc_utils.py +0 -0
  39. {dcicutils-7.4.2.1b10 → dcicutils-7.4.2.1b12}/dcicutils/obfuscation_utils.py +0 -0
  40. {dcicutils-7.4.2.1b10 → dcicutils-7.4.2.1b12}/dcicutils/opensearch_utils.py +0 -0
  41. {dcicutils-7.4.2.1b10 → dcicutils-7.4.2.1b12}/dcicutils/qa_checkers.py +0 -0
  42. {dcicutils-7.4.2.1b10 → dcicutils-7.4.2.1b12}/dcicutils/qa_utils.py +0 -0
  43. {dcicutils-7.4.2.1b10 → dcicutils-7.4.2.1b12}/dcicutils/redis_tools.py +0 -0
  44. {dcicutils-7.4.2.1b10 → dcicutils-7.4.2.1b12}/dcicutils/redis_utils.py +0 -0
  45. {dcicutils-7.4.2.1b10 → dcicutils-7.4.2.1b12}/dcicutils/s3_utils.py +0 -0
  46. {dcicutils-7.4.2.1b10 → dcicutils-7.4.2.1b12}/dcicutils/scripts/publish_to_pypi.py +0 -0
  47. {dcicutils-7.4.2.1b10 → dcicutils-7.4.2.1b12}/dcicutils/secrets_utils.py +0 -0
  48. {dcicutils-7.4.2.1b10 → dcicutils-7.4.2.1b12}/dcicutils/snapshot_utils.py +0 -0
  49. {dcicutils-7.4.2.1b10 → dcicutils-7.4.2.1b12}/dcicutils/ssl_certificate_utils.py +0 -0
  50. {dcicutils-7.4.2.1b10 → dcicutils-7.4.2.1b12}/dcicutils/task_utils.py +0 -0
  51. {dcicutils-7.4.2.1b10 → dcicutils-7.4.2.1b12}/dcicutils/trace_utils.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: dcicutils
3
- Version: 7.4.2.1b10
3
+ Version: 7.4.2.1b12
4
4
  Summary: Utility package for interacting with the 4DN Data Portal and other 4DN resources
5
5
  Home-page: https://github.com/4dn-dcic/utils
6
6
  License: MIT
@@ -65,7 +65,8 @@ class ProjectRegistry:
65
65
  REQUIRED_PROJECT_ATTRS = ['NAME']
66
66
 
67
67
  NON_INHERITED_PROJECT_ATTRS = [
68
- 'REPO_NAME', 'PYPI_NAME', 'PACKAGE_NAME', 'PRETTY_NAME', 'APP_NAME', 'APP_PRETTY_NAME'
68
+ # PYPROJECT_NAME and PACKAGE_NAME are also in this set but handled by special case.
69
+ 'REPO_NAME', 'PYPI_NAME', 'PRETTY_NAME', 'APP_NAME', 'APP_PRETTY_NAME'
69
70
  ]
70
71
 
71
72
  @classmethod
@@ -81,6 +82,10 @@ class ProjectRegistry:
81
82
 
82
83
  Since fourfront and cgap-portal don't occupy the same space, no confusion should result.
83
84
  """
85
+
86
+ protected_project_bindings = [('PYPROJECT_NAME', '_PYPROJECT_NAME', pyproject_name, False),
87
+ ('PACKAGE_NAME', '_PACKAGE_NAME', None, True)]
88
+
84
89
  def _wrap_class(the_class):
85
90
  the_class_name = the_class.__name__
86
91
  if not issubclass(the_class, Project):
@@ -88,16 +93,19 @@ class ProjectRegistry:
88
93
 
89
94
  explicit_attrs = the_class.__dict__
90
95
 
91
- explicit_pyproject_name = explicit_attrs.get('PYPROJECT_NAME')
92
- if explicit_pyproject_name:
93
- message = f"Explicit {the_class_name}.PYPROJECT_NAME={explicit_pyproject_name!r} is not permitted."
94
- if explicit_pyproject_name != pyproject_name:
95
- message += f" An assignment to {pyproject_name!r} is intended to be managed implicitly."
96
+ for public_attr, private_attr, default_val, assign_ok in protected_project_bindings:
97
+ if private_attr in explicit_attrs:
98
+ raise ValueError(f"{private_attr} is an internally managed variable. You must not set it.")
99
+ if public_attr in explicit_attrs:
100
+ explicit_val = explicit_attrs[public_attr]
101
+ if assign_ok:
102
+ setattr(the_class, public_attr, getattr(Project, public_attr))
103
+ setattr(the_class, private_attr, explicit_val)
104
+ else:
105
+ raise ValueError(f"Explicit {the_class_name}.{public_attr}={explicit_val!r} is not permitted."
106
+ f" This assignment is intended to be managed implicitly.")
96
107
  else:
97
- message += " This assignment is intended to be managed implicitly."
98
- raise ValueError(message)
99
- else:
100
- the_class._PYPROJECT_NAME = pyproject_name # no need for the caller to say this redundantly
108
+ setattr(the_class, private_attr, default_val)
101
109
 
102
110
  for attr in cls.REQUIRED_PROJECT_ATTRS:
103
111
  if attr not in explicit_attrs:
@@ -105,7 +113,7 @@ class ProjectRegistry:
105
113
 
106
114
  for attr in cls.NON_INHERITED_PROJECT_ATTRS:
107
115
  if attr not in explicit_attrs:
108
- setattr(cls, attr, Project.__dict__[attr])
116
+ delattr(the_class, attr)
109
117
 
110
118
  lower_registry_name = pyproject_name.lower()
111
119
  for x in ['cgap-portal', 'fourfront', 'smaht']:
@@ -260,7 +268,7 @@ class Project:
260
268
  # Other exported dirs, such as scripts or tests should be in later entries.
261
269
  package_name = poetry_data['packages'][0]['include']
262
270
  else:
263
- package_name = cls.PYPROJECT_NAME
271
+ package_name = cls.PYPI_NAME or cls.PYPROJECT_NAME
264
272
  cls._PACKAGE_NAME = package_name
265
273
  return package_name
266
274
 
@@ -277,7 +285,7 @@ class Project:
277
285
 
278
286
  @classproperty
279
287
  def APP_NAME(cls): # noQA - PyCharm wants the variable name to be self
280
- return cls.PACKAGE_NAME.replace('-portal', '').replace('encoded-', '')
288
+ return cls.REPO_NAME.replace('-portal', '').replace('encoded-', '')
281
289
 
282
290
  @classproperty
283
291
  def APP_PRETTY_NAME(cls): # noQA - PyCharm wants the variable name to be self
@@ -1,6 +1,6 @@
1
1
  [tool.poetry]
2
2
  name = "dcicutils"
3
- version = "7.4.2.1b10" # to become 7.5.0
3
+ version = "7.4.2.1b12" # to become 7.5.0
4
4
  description = "Utility package for interacting with the 4DN Data Portal and other 4DN resources"
5
5
  authors = ["4DN-DCIC Team <support@4dnucleome.org>"]
6
6
  license = "MIT"
@@ -38,7 +38,7 @@ entry_points = \
38
38
 
39
39
  setup_kwargs = {
40
40
  'name': 'dcicutils',
41
- 'version': '7.4.2.1b10',
41
+ 'version': '7.4.2.1b12',
42
42
  'description': 'Utility package for interacting with the 4DN Data Portal and other 4DN resources',
43
43
  'long_description': '=====\nutils\n=====\n\nCheck out our full documentation `here <https://dcic-utils.readthedocs.io/en/latest/>`_\n\nThis repository contains various utility modules shared amongst several projects in the 4DN-DCIC. It is meant to be used internally by the DCIC team and externally as a Python API to `Fourfront <https://data.4dnucleome.org>`_\\ , the 4DN data portal.\n\npip installable as the ``dcicutils`` package with: ``pip install dcicutils``\n\nSee `this document <https://dcic-utils.readthedocs.io/en/latest/getting_started.html>`_ for tips on getting started. `Go here <https://dcic-utils.readthedocs.io/en/latest/examples.html>`_ for examples of some of the most useful functions.\n\n\n.. image:: https://travis-ci.org/4dn-dcic/utils.svg?branch=master\n :target: https://travis-ci.org/4dn-dcic/utils\n :alt: Build Status\n\n\n.. image:: https://coveralls.io/repos/github/4dn-dcic/utils/badge.svg?branch=master\n :target: https://coveralls.io/github/4dn-dcic/utils?branch=master\n :alt: Coverage\n\n.. image:: https://readthedocs.org/projects/dcic-utils/badge/?version=latest\n :target: https://dcic-utils.readthedocs.io/en/latest/?badge=latest\n :alt: Documentation Status\n',
44
44
  'author': '4DN-DCIC Team',