ebi-eva-common-pyutils 0.6.2__tar.gz → 0.6.4__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 (45) hide show
  1. {ebi_eva_common_pyutils-0.6.2 → ebi_eva_common_pyutils-0.6.4}/CHANGELOG.md +11 -0
  2. {ebi_eva_common_pyutils-0.6.2 → ebi_eva_common_pyutils-0.6.4}/PKG-INFO +2 -10
  3. {ebi_eva_common_pyutils-0.6.2 → ebi_eva_common_pyutils-0.6.4}/ebi_eva_common_pyutils/command_utils.py +8 -7
  4. {ebi_eva_common_pyutils-0.6.2 → ebi_eva_common_pyutils-0.6.4}/ebi_eva_common_pyutils/logger.py +3 -0
  5. {ebi_eva_common_pyutils-0.6.2 → ebi_eva_common_pyutils-0.6.4}/ebi_eva_common_pyutils.egg-info/PKG-INFO +2 -10
  6. {ebi_eva_common_pyutils-0.6.2 → ebi_eva_common_pyutils-0.6.4}/ebi_eva_common_pyutils.egg-info/SOURCES.txt +1 -3
  7. {ebi_eva_common_pyutils-0.6.2 → ebi_eva_common_pyutils-0.6.4}/ebi_eva_internal_pyutils/mongodb/mongo_database.py +1 -3
  8. {ebi_eva_common_pyutils-0.6.2 → ebi_eva_common_pyutils-0.6.4}/setup.py +1 -1
  9. ebi_eva_common_pyutils-0.6.2/tests/test_common.py +0 -22
  10. {ebi_eva_common_pyutils-0.6.2 → ebi_eva_common_pyutils-0.6.4}/LICENSE +0 -0
  11. {ebi_eva_common_pyutils-0.6.2 → ebi_eva_common_pyutils-0.6.4}/MANIFEST.in +0 -0
  12. {ebi_eva_common_pyutils-0.6.2 → ebi_eva_common_pyutils-0.6.4}/README.md +0 -0
  13. {ebi_eva_common_pyutils-0.6.2 → ebi_eva_common_pyutils-0.6.4}/ebi_eva_common_pyutils/__init__.py +0 -0
  14. {ebi_eva_common_pyutils-0.6.2 → ebi_eva_common_pyutils-0.6.4}/ebi_eva_common_pyutils/assembly/__init__.py +0 -0
  15. {ebi_eva_common_pyutils-0.6.2 → ebi_eva_common_pyutils-0.6.4}/ebi_eva_common_pyutils/assembly/assembly.py +0 -0
  16. {ebi_eva_common_pyutils-0.6.2 → ebi_eva_common_pyutils-0.6.4}/ebi_eva_common_pyutils/assembly_utils.py +0 -0
  17. {ebi_eva_common_pyutils-0.6.2 → ebi_eva_common_pyutils-0.6.4}/ebi_eva_common_pyutils/common_utils.py +0 -0
  18. {ebi_eva_common_pyutils-0.6.2 → ebi_eva_common_pyutils-0.6.4}/ebi_eva_common_pyutils/config.py +0 -0
  19. {ebi_eva_common_pyutils-0.6.2 → ebi_eva_common_pyutils-0.6.4}/ebi_eva_common_pyutils/contig_alias/__init__.py +0 -0
  20. {ebi_eva_common_pyutils-0.6.2 → ebi_eva_common_pyutils-0.6.4}/ebi_eva_common_pyutils/contig_alias/contig_alias.py +0 -0
  21. {ebi_eva_common_pyutils-0.6.2 → ebi_eva_common_pyutils-0.6.4}/ebi_eva_common_pyutils/ena_utils.py +0 -0
  22. {ebi_eva_common_pyutils-0.6.2 → ebi_eva_common_pyutils-0.6.4}/ebi_eva_common_pyutils/file_utils.py +0 -0
  23. {ebi_eva_common_pyutils-0.6.2 → ebi_eva_common_pyutils-0.6.4}/ebi_eva_common_pyutils/ncbi_utils.py +0 -0
  24. {ebi_eva_common_pyutils-0.6.2 → ebi_eva_common_pyutils-0.6.4}/ebi_eva_common_pyutils/network_utils.py +0 -0
  25. {ebi_eva_common_pyutils-0.6.2 → ebi_eva_common_pyutils-0.6.4}/ebi_eva_common_pyutils/reference/__init__.py +0 -0
  26. {ebi_eva_common_pyutils-0.6.2 → ebi_eva_common_pyutils-0.6.4}/ebi_eva_common_pyutils/reference/assembly.py +0 -0
  27. {ebi_eva_common_pyutils-0.6.2 → ebi_eva_common_pyutils-0.6.4}/ebi_eva_common_pyutils/reference/sequence.py +0 -0
  28. {ebi_eva_common_pyutils-0.6.2 → ebi_eva_common_pyutils-0.6.4}/ebi_eva_common_pyutils/taxonomy/__init__.py +0 -0
  29. {ebi_eva_common_pyutils-0.6.2 → ebi_eva_common_pyutils-0.6.4}/ebi_eva_common_pyutils/taxonomy/taxonomy.py +0 -0
  30. {ebi_eva_common_pyutils-0.6.2 → ebi_eva_common_pyutils-0.6.4}/ebi_eva_common_pyutils/variation/__init__.py +0 -0
  31. {ebi_eva_common_pyutils-0.6.2 → ebi_eva_common_pyutils-0.6.4}/ebi_eva_common_pyutils/variation/contig_utils.py +0 -0
  32. {ebi_eva_common_pyutils-0.6.2 → ebi_eva_common_pyutils-0.6.4}/ebi_eva_common_pyutils.egg-info/dependency_links.txt +0 -0
  33. {ebi_eva_common_pyutils-0.6.2 → ebi_eva_common_pyutils-0.6.4}/ebi_eva_common_pyutils.egg-info/requires.txt +0 -0
  34. {ebi_eva_common_pyutils-0.6.2 → ebi_eva_common_pyutils-0.6.4}/ebi_eva_common_pyutils.egg-info/top_level.txt +0 -0
  35. {ebi_eva_common_pyutils-0.6.2 → ebi_eva_common_pyutils-0.6.4}/ebi_eva_internal_pyutils/__init__.py +0 -0
  36. {ebi_eva_common_pyutils-0.6.2 → ebi_eva_common_pyutils-0.6.4}/ebi_eva_internal_pyutils/archive_directory.py +0 -0
  37. {ebi_eva_common_pyutils-0.6.2 → ebi_eva_common_pyutils-0.6.4}/ebi_eva_internal_pyutils/config_utils.py +0 -0
  38. {ebi_eva_common_pyutils-0.6.2 → ebi_eva_common_pyutils-0.6.4}/ebi_eva_internal_pyutils/metadata_utils.py +0 -0
  39. {ebi_eva_common_pyutils-0.6.2 → ebi_eva_common_pyutils-0.6.4}/ebi_eva_internal_pyutils/mongo_utils.py +0 -0
  40. {ebi_eva_common_pyutils-0.6.2 → ebi_eva_common_pyutils-0.6.4}/ebi_eva_internal_pyutils/mongodb/__init__.py +0 -0
  41. {ebi_eva_common_pyutils-0.6.2 → ebi_eva_common_pyutils-0.6.4}/ebi_eva_internal_pyutils/nextflow/__init__.py +0 -0
  42. {ebi_eva_common_pyutils-0.6.2 → ebi_eva_common_pyutils-0.6.4}/ebi_eva_internal_pyutils/nextflow/nextflow_pipeline.py +0 -0
  43. {ebi_eva_common_pyutils-0.6.2 → ebi_eva_common_pyutils-0.6.4}/ebi_eva_internal_pyutils/pg_utils.py +0 -0
  44. {ebi_eva_common_pyutils-0.6.2 → ebi_eva_common_pyutils-0.6.4}/ebi_eva_internal_pyutils/spring_properties.py +0 -0
  45. {ebi_eva_common_pyutils-0.6.2 → ebi_eva_common_pyutils-0.6.4}/setup.cfg +0 -0
@@ -2,6 +2,17 @@
2
2
  Changelog for ebi_eva_common_pyutils
3
3
  ===========================
4
4
 
5
+ ## 0.6.4 (2024-03-21)
6
+ ---------------------
7
+
8
+ - Update Mongodb client to use mongosh instead of the legacy mongo.
9
+
10
+ ## 0.6.3 (2024-02-22)
11
+ ---------------------
12
+
13
+ - Variable log level when running a command
14
+
15
+
5
16
  ## 0.6.2 (2023-10-30)
6
17
  ---------------------
7
18
 
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: ebi_eva_common_pyutils
3
- Version: 0.6.2
3
+ Version: 0.6.4
4
4
  Summary: EBI EVA - Common Python Utilities
5
5
  Home-page: https://github.com/EBIVariation/eva-common-pyutils
6
6
  License: Apache
@@ -10,13 +10,5 @@ Classifier: Intended Audience :: Developers
10
10
  Classifier: Topic :: Software Development :: Build Tools
11
11
  Classifier: License :: OSI Approved :: Apache Software License
12
12
  Classifier: Programming Language :: Python :: 3
13
- License-File: LICENSE
14
- Requires-Dist: requests
15
- Requires-Dist: lxml
16
- Requires-Dist: pyyaml
17
- Requires-Dist: cached-property
18
- Requires-Dist: retry
19
13
  Provides-Extra: eva-internal
20
- Requires-Dist: psycopg2-binary; extra == "eva-internal"
21
- Requires-Dist: pymongo; extra == "eva-internal"
22
- Requires-Dist: networkx<=2.5; extra == "eva-internal"
14
+ License-File: LICENSE
@@ -11,7 +11,7 @@
11
11
  # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12
12
  # See the License for the specific language governing permissions and
13
13
  # limitations under the License.
14
-
14
+ import logging
15
15
  import subprocess
16
16
 
17
17
  from ebi_eva_common_pyutils.logger import logging_config as log_cfg
@@ -20,11 +20,12 @@ logger = log_cfg.get_logger(__name__)
20
20
 
21
21
 
22
22
  def run_command_with_output(command_description, command, return_process_output=False,
23
- log_error_stream_to_output=False):
23
+ log_error_stream_to_output=False, stdout_log_level=logging.INFO,
24
+ stderr_log_level=logging.ERROR):
24
25
  process_output = ""
25
26
 
26
- logger.info("Starting process: " + command_description)
27
- logger.info("Running command: " + command)
27
+ logger.log(stdout_log_level, "Starting process: " + command_description)
28
+ logger.log(stdout_log_level, "Running command: " + command)
28
29
 
29
30
  stdout = subprocess.PIPE
30
31
  # Some lame utilities like mongodump and mongorestore output non-error messages to error stream
@@ -35,18 +36,18 @@ def run_command_with_output(command_description, command, return_process_output=
35
36
  shell=True) as process:
36
37
  for line in iter(process.stdout.readline, ''):
37
38
  line = str(line).rstrip()
38
- logger.info(line)
39
+ logger.log(stdout_log_level, line)
39
40
  if return_process_output:
40
41
  process_output += line + "\n"
41
42
  if not log_error_stream_to_output:
42
43
  for line in iter(process.stderr.readline, ''):
43
44
  line = str(line).rstrip()
44
- logger.error(line)
45
+ logger.log(stderr_log_level, line)
45
46
  if process.returncode != 0:
46
47
  logger.error(command_description + " failed! Refer to the error messages for details.")
47
48
  raise subprocess.CalledProcessError(process.returncode, process.args)
48
49
  else:
49
- logger.info(command_description + " - completed successfully")
50
+ logger.log(stdout_log_level, command_description + " - completed successfully")
50
51
  if return_process_output:
51
52
  return process_output
52
53
 
@@ -127,6 +127,9 @@ class AppLogger:
127
127
  """
128
128
  log_cfg = logging_config
129
129
 
130
+ def log(self, level, msg, *args, **kwargs):
131
+ self._logger.log(level, msg, *args, **kwargs)
132
+
130
133
  def debug(self, msg, *args):
131
134
  self._logger.debug(msg, *args)
132
135
 
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: ebi-eva-common-pyutils
3
- Version: 0.6.2
3
+ Version: 0.6.4
4
4
  Summary: EBI EVA - Common Python Utilities
5
5
  Home-page: https://github.com/EBIVariation/eva-common-pyutils
6
6
  License: Apache
@@ -10,13 +10,5 @@ Classifier: Intended Audience :: Developers
10
10
  Classifier: Topic :: Software Development :: Build Tools
11
11
  Classifier: License :: OSI Approved :: Apache Software License
12
12
  Classifier: Programming Language :: Python :: 3
13
- License-File: LICENSE
14
- Requires-Dist: requests
15
- Requires-Dist: lxml
16
- Requires-Dist: pyyaml
17
- Requires-Dist: cached-property
18
- Requires-Dist: retry
19
13
  Provides-Extra: eva-internal
20
- Requires-Dist: psycopg2-binary; extra == "eva-internal"
21
- Requires-Dist: pymongo; extra == "eva-internal"
22
- Requires-Dist: networkx<=2.5; extra == "eva-internal"
14
+ License-File: LICENSE
@@ -4,7 +4,6 @@ MANIFEST.in
4
4
  README.md
5
5
  setup.cfg
6
6
  setup.py
7
- /data/from_the_firehose/eva-common-pyutils/ebi_eva_internal_pyutils/archive_directory.py
8
7
  ebi_eva_common_pyutils/__init__.py
9
8
  ebi_eva_common_pyutils/assembly_utils.py
10
9
  ebi_eva_common_pyutils/command_utils.py
@@ -41,5 +40,4 @@ ebi_eva_internal_pyutils/spring_properties.py
41
40
  ebi_eva_internal_pyutils/mongodb/__init__.py
42
41
  ebi_eva_internal_pyutils/mongodb/mongo_database.py
43
42
  ebi_eva_internal_pyutils/nextflow/__init__.py
44
- ebi_eva_internal_pyutils/nextflow/nextflow_pipeline.py
45
- tests/test_common.py
43
+ ebi_eva_internal_pyutils/nextflow/nextflow_pipeline.py
@@ -111,9 +111,7 @@ class MongoDatabase(AppLogger):
111
111
  shard_collection_command = f'sh.shardCollection(' \
112
112
  f'"{self.db_name}.{collection_name}", ' \
113
113
  f'{shard_key_repr}, {str(shard_key_uniqueness_flag).lower()})'
114
- sharding_command = f"mongo --host {self.uri} " \
115
- f"--eval " \
116
- f"'{shard_collection_command}' "
114
+ sharding_command = f"mongosh --eval '{shard_collection_command}' {self.uri} "
117
115
  sharding_command += self._get_optional_secrets_file_stdin()
118
116
  run_command_with_output(f"Sharding collection {collection_name} in the database {self.uri_with_db_name} "
119
117
  f"with key {shard_key_repr}...", sharding_command,
@@ -7,7 +7,7 @@ setup(
7
7
  name='ebi_eva_common_pyutils',
8
8
  scripts=[os.path.join(os.path.dirname(__file__), 'ebi_eva_internal_pyutils', 'archive_directory.py')],
9
9
  packages=find_packages(),
10
- version='0.6.2',
10
+ version='0.6.4',
11
11
  license='Apache',
12
12
  description='EBI EVA - Common Python Utilities',
13
13
  url='https://github.com/EBIVariation/eva-common-pyutils',
@@ -1,22 +0,0 @@
1
- import os
2
- from unittest import TestCase
3
-
4
- from ebi_eva_common_pyutils.common_utils import merge_two_dicts, pretty_print
5
-
6
-
7
- class TestCommon(TestCase):
8
-
9
- resources_folder = os.path.join(os.path.dirname(__file__), 'resources')
10
-
11
-
12
- class TestCommonUtils(TestCase):
13
-
14
- def test_merge_two_dicts(self):
15
- d1 = {'a': 1, 'b': 2, 'c': 3}
16
- d2 = {'d': 4, 'a': 5, 'e': 6}
17
- assert merge_two_dicts(d1, d2) == {'a': 5, 'b': 2, 'c': 3, 'd': 4, 'e': 6}
18
- assert merge_two_dicts(d2, d1) == {'a': 1, 'b': 2, 'c': 3, 'd': 4, 'e': 6}
19
-
20
- def test_pretty_print(self):
21
- pretty_print(['Header 1', 'Long Header 2'],
22
- [['row1 cell 1', 'row1 cell 2'], ['row2 cell 1', 'Super long row2 cell 2']])