geoseeq 0.7.1__py3-none-any.whl → 0.7.3.dev0__py3-none-any.whl

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.
geoseeq/cli/main.py CHANGED
@@ -1,35 +1,33 @@
1
-
2
1
  import logging
3
2
 
4
3
  import click
5
4
 
5
+ from geoseeq.knex import DEFAULT_ENDPOINT
6
+ from geoseeq.utils import set_profile
6
7
 
7
8
  from .copy import cli_copy
8
- from .manage import cli_manage
9
+ from .detail import cli_detail
9
10
  from .download import cli_download
11
+ from .find_grn import cli_find_grn
12
+ from .get_eula import cli_eula
13
+ from .manage import cli_manage
14
+ from .run import cli_app
15
+ from .search import cli_search
16
+ from .shared_params.opts_and_args import overwrite_option, yes_option
10
17
  from .upload import cli_upload, cli_upload_advanced
11
18
  from .user import cli_user
12
19
  from .view import cli_view
13
- from .search import cli_search
14
-
15
- from geoseeq.knex import DEFAULT_ENDPOINT
16
- from geoseeq.utils import set_profile
17
- from .shared_params.opts_and_args import overwrite_option, yes_option
18
- from .detail import cli_detail
19
- from .run import cli_app
20
- from .get_eula import cli_eula
21
- from .find_grn import cli_find_grn
22
20
 
23
- logger = logging.getLogger('geoseeq_api')
21
+ logger = logging.getLogger("geoseeq_api")
24
22
  handler = logging.StreamHandler()
25
- handler.setFormatter(logging.Formatter('[%(levelname)s] %(name)s :: %(message)s'))
23
+ handler.setFormatter(logging.Formatter("[%(levelname)s] %(name)s :: %(message)s"))
26
24
  logger.addHandler(handler)
27
25
 
28
26
 
29
- @click.group(context_settings={'show_default': True})
27
+ @click.group(context_settings={"show_default": True})
30
28
  def main():
31
29
  """Command line interface for the GeoSeeq API.
32
-
30
+
33
31
  ---
34
32
 
35
33
  Use of this tool implies acceptance of the GeoSeeq End User License Agreement.
@@ -37,6 +35,7 @@ def main():
37
35
  """
38
36
  pass
39
37
 
38
+
40
39
  main.add_command(cli_download)
41
40
  main.add_command(cli_upload)
42
41
  main.add_command(cli_manage)
@@ -46,86 +45,105 @@ main.add_command(cli_app)
46
45
  main.add_command(cli_eula)
47
46
  main.add_command(cli_find_grn)
48
47
 
48
+
49
49
  @main.command()
50
50
  def version():
51
51
  """Print the version of the Geoseeq API being used.
52
52
 
53
53
  ---
54
-
54
+
55
55
  Use of this tool implies acceptance of the GeoSeeq End User License Agreement.
56
56
  Run `geoseeq eula show` to view the EULA.
57
57
  """
58
- click.echo('0.7.1') # remember to update pyproject.toml
58
+ click.echo("0.7.3dev0") # remember to update pyproject.toml
59
59
 
60
60
 
61
- @main.group('advanced')
61
+ @main.group("advanced")
62
62
  def cli_advanced():
63
63
  """Advanced commands."""
64
64
  pass
65
65
 
66
+
66
67
  cli_advanced.add_command(cli_copy)
67
68
  cli_advanced.add_command(cli_user)
68
69
  cli_advanced.add_command(cli_detail)
69
70
  cli_advanced.add_command(cli_upload_advanced)
70
71
 
71
- @cli_advanced.group('experimental')
72
+
73
+ @cli_advanced.group("experimental")
72
74
  def cli_experimental():
73
75
  """Experimental commands."""
74
76
  pass
75
77
 
76
78
 
77
-
78
79
  try:
79
80
  from geoseeq.vc.cli import cli_vc
81
+
80
82
  from .project import cli_project
83
+
81
84
  cli_experimental.add_command(cli_vc)
82
85
  cli_advanced.add_command(cli_project)
83
86
 
84
87
  except (ModuleNotFoundError, ImportError):
85
88
  pass
86
89
 
87
- @main.command('config')
90
+
91
+ @main.command("config")
88
92
  @yes_option
89
- @click.option('--api-token', default=None, help='The API token to use.')
90
- @click.option('--endpoint', default=None, help='The endpoint to use.')
91
- @click.option('-p', '--profile', default=None, help='The profile name to use.')
93
+ @click.option("--api-token", default=None, help="The API token to use.")
94
+ @click.option("--endpoint", default=None, help="The endpoint to use.")
95
+ @click.option("-p", "--profile", default=None, help="The profile name to use.")
92
96
  @overwrite_option
93
97
  def cli_config(yes, api_token, endpoint, profile, overwrite):
94
98
  """Configure the GeoSeeq API.
95
99
 
96
100
  ---
97
-
101
+
98
102
  Use of this tool implies acceptance of the GeoSeeq End User License Agreement.
99
103
  Run `geoseeq eula show` to view the EULA.
100
104
  """
101
105
  if not profile and not yes:
102
- profile = click.prompt(f'Set custom profile name? (Leave blank for default)', default="").strip(' \"\'')
106
+ profile = click.prompt(
107
+ f"Set custom profile name? (Leave blank for default)", default=""
108
+ ).strip(" \"'")
103
109
  if not endpoint:
104
110
  endpoint = DEFAULT_ENDPOINT
105
111
  if not yes:
106
- endpoint = click.prompt(f'Enter the URL to use for GeoSeeq (Most users can use the default)', default=DEFAULT_ENDPOINT).strip(' \"\'')
112
+ endpoint = click.prompt(
113
+ f"Enter the URL to use for GeoSeeq (Most users can use the default)",
114
+ default=DEFAULT_ENDPOINT,
115
+ ).strip(" \"'")
107
116
  if not api_token:
108
- api_token = click.prompt(f'Enter your GeoSeeq API token', hide_input=True).strip(' \"\'')
117
+ api_token = click.prompt(
118
+ f"Enter your GeoSeeq API token", hide_input=True
119
+ ).strip(" \"'")
109
120
  if not yes:
110
- eula_accepted = click.confirm(f'Have you read and accepted the GeoSeeq End User License Agreement? Use `geoseeq eula show` to view the EULA.')
121
+ eula_accepted = click.confirm(
122
+ (
123
+ "Have you read and accepted the GeoSeeq End User License "
124
+ "Agreement? Use `geoseeq eula show` to view the EULA."
125
+ )
126
+ )
111
127
  if not eula_accepted:
112
- click.echo('You must accept the EULA to use the GeoSeeq API.')
128
+ click.echo("You must accept the EULA to use the GeoSeeq API.")
113
129
  return
114
130
  set_profile(api_token, endpoint=endpoint, profile=profile, overwrite=overwrite)
115
- click.echo(f'Profile configured.')
131
+ click.echo(f"Profile configured.")
116
132
 
117
133
 
118
- @main.command('clear-cache')
134
+ @main.command("clear-cache")
119
135
  @yes_option
120
136
  def cli_clear_cache(yes):
121
137
  """Clear the local cache.
122
138
 
123
139
  ---
124
-
140
+
125
141
  Use of this tool implies acceptance of the GeoSeeq End User License Agreement.
126
142
  Run `geoseeq eula show` to view the EULA.
127
143
  """
128
- from geoseeq.file_system_cache import GEOSEEQ_CACHE_DIR
129
144
  import shutil
130
- if yes or click.confirm('Are you sure you want to clear the cache?'):
131
- shutil.rmtree(GEOSEEQ_CACHE_DIR, ignore_errors=True)
145
+
146
+ from geoseeq.file_system_cache import GEOSEEQ_CACHE_DIR
147
+
148
+ if yes or click.confirm("Are you sure you want to clear the cache?"):
149
+ shutil.rmtree(GEOSEEQ_CACHE_DIR, ignore_errors=True)
@@ -128,9 +128,9 @@ def cli_upload_file(state, cores, threads_per_upload, num_retries, chunk_size_mb
128
128
  )
129
129
  for geoseeq_file_name, file_path in name_pairs:
130
130
  if isfile(file_path):
131
- upload_manager.add_local_file_to_result_folder(result_folder, file_path)
131
+ upload_manager.add_local_file_to_result_folder(result_folder, file_path, geoseeq_file_name=geoseeq_file_name)
132
132
  elif isdir(file_path) and recursive:
133
- upload_manager.add_local_folder_to_result_folder(result_folder, file_path, recursive=recursive, hidden_files=hidden, prefix=file_path)
133
+ upload_manager.add_local_folder_to_result_folder(result_folder, file_path, recursive=recursive, hidden_files=hidden, prefix=file_path, geoseeq_file_name=geoseeq_file_name)
134
134
  elif isdir(file_path) and not recursive:
135
135
  raise click.UsageError('Cannot upload a folder without --recursive')
136
136
  click.echo(upload_manager.get_preview_string(), err=True)
@@ -1,10 +1,9 @@
1
-
2
1
  import logging
3
- import json
4
2
  from typing import Literal
5
- from geoseeq.remote_object import RemoteObject
6
- from geoseeq.id_constructors import result_file_from_blob
3
+
7
4
  from geoseeq import ProjectResultFile
5
+ from geoseeq.id_constructors import result_file_from_blob
6
+ from geoseeq.remote_object import RemoteObject
8
7
 
9
8
  logger = logging.getLogger("geoseeq_api")
10
9
 
@@ -32,18 +31,29 @@ class Dashboard(RemoteObject):
32
31
 
33
32
  def _save(self):
34
33
  self.save_tiles()
35
-
34
+
36
35
  def save_tiles(self):
37
36
  post_data = {"tiles": [tile._get_post_data() for tile in self.tiles]}
38
- blob = self.knex.post(f"sample_groups/{self.project.uuid}/dashboard/{self.name}/tiles", json=post_data, json_response=False)
37
+ blob = self.knex.post(
38
+ f"sample_groups/{self.project.uuid}/dashboard/{self.name}/tiles",
39
+ json=post_data,
40
+ json_response=False,
41
+ )
39
42
  print(blob)
40
-
43
+
41
44
  def _create(self):
42
45
  post_data = {"name": self.name, "is_default": self.is_default}
43
- blob = self.knex.post(f"sample_groups/{self.project.uuid}/dashboard", json=post_data)
46
+ blob = self.knex.post(
47
+ f"sample_groups/{self.project.uuid}/dashboard", json=post_data
48
+ )
44
49
  self.load_blob(blob)
45
-
46
- def tile(self, title, result_file, style: Literal["col-span-1", "col-span-2"]="col-span-1"):
50
+
51
+ def tile(
52
+ self,
53
+ title,
54
+ result_file,
55
+ style: Literal["col-span-1", "col-span-2"] = "col-span-1",
56
+ ):
47
57
  result_file.get()
48
58
  tile = DashboardTile(self.knex, self, title, result_file, style=style)
49
59
  self.tiles.append(tile)
@@ -59,19 +69,92 @@ class Dashboard(RemoteObject):
59
69
  return self._name
60
70
 
61
71
  def __str__(self):
62
- return f"<Geoseeq Dashboard: {self.project.grn} \"{self.name}\"/>"
63
-
72
+ return f'<Geoseeq Dashboard: {self.project.grn} "{self.name}"/>'
73
+
64
74
  def __repr__(self):
65
75
  return str(self)
66
-
76
+
67
77
  @property
68
78
  def grn(self):
69
- return f"grn:dashboard:{self.project.uuid}:\"{self.name}\""
70
-
79
+ return f'grn:dashboard:{self.project.uuid}:"{self.name}"'
80
+
71
81
  def pre_hash(self):
72
82
  return "DASH" + self.project.uuid + self.name
73
83
 
74
84
 
85
+ class SampleDashboard(RemoteObject):
86
+ """Dashboard client for a single sample."""
87
+
88
+ parent_field = "sample"
89
+ remote_fields = ["is_default"]
90
+
91
+ def __init__(self, knex, sample, name="Default dashboard", is_default=False):
92
+ super().__init__(self)
93
+ self.knex = knex
94
+ self.sample = sample
95
+ self._name = name
96
+ self.tiles = []
97
+ self.is_default = is_default
98
+
99
+ def _get(self, allow_overwrite=False):
100
+ blob = self.knex.get(f"samples/{self.sample.uuid}/dashboard-list")
101
+ blob = blob["dashboard_data"][self.name]
102
+ for tile_blob in blob["tiles"]:
103
+ tile = DashboardTile.from_blob(self, tile_blob)
104
+ self.tiles.append(tile)
105
+ blob.pop("tiles")
106
+ self.load_blob(blob, allow_overwrite=allow_overwrite)
107
+
108
+ def _save(self):
109
+ self.save_tiles()
110
+
111
+ def save_tiles(self):
112
+ post_data = {"tiles": [tile._get_post_data() for tile in self.tiles]}
113
+ self.knex.post(
114
+ f"samples/{self.sample.uuid}/dashboard/{self.name}/tiles",
115
+ json=post_data,
116
+ json_response=False,
117
+ )
118
+
119
+ def _create(self):
120
+ post_data = {"name": self.name, "is_default": self.is_default}
121
+ blob = self.knex.post(f"samples/{self.sample.uuid}/dashboard", json=post_data)
122
+ self.load_blob(blob)
123
+
124
+ def tile(
125
+ self,
126
+ title,
127
+ result_file,
128
+ style: Literal["col-span-1", "col-span-2"] = "col-span-1",
129
+ ):
130
+ result_file.get()
131
+ tile = DashboardTile(self.knex, self, title, result_file, style=style)
132
+ self.tiles.append(tile)
133
+ self._modified = True
134
+ return tile
135
+
136
+ def add_tile(self, tile):
137
+ self.tiles.append(tile)
138
+ self._modified = True
139
+
140
+ @property
141
+ def name(self):
142
+ return self._name
143
+
144
+ def __str__(self):
145
+ return f'<Geoseeq SampleDashboard: {self.sample.brn} "{self.name}"/>'
146
+
147
+ def __repr__(self):
148
+ return str(self)
149
+
150
+ @property
151
+ def grn(self):
152
+ return f'grn:dashboard:{self.sample.uuid}:"{self.name}"'
153
+
154
+ def pre_hash(self):
155
+ return "DASH" + self.sample.uuid + self.name
156
+
157
+
75
158
  class DashboardTile:
76
159
 
77
160
  def __init__(self, knex, dashboard, title, result_file, style="col-span-1"):
@@ -82,9 +165,11 @@ class DashboardTile:
82
165
  self.result_file = result_file
83
166
 
84
167
  def _get_post_data(self):
85
- out = {
168
+ out = {
86
169
  "field_uuid": self.result_file.uuid,
87
- "field_type": "group" if isinstance(self.result_file, ProjectResultFile) else "sample",
170
+ "field_type": (
171
+ "group" if isinstance(self.result_file, ProjectResultFile) else "sample"
172
+ ),
88
173
  "style": self.style,
89
174
  "title": self.title,
90
175
  "has_related_field": False,
@@ -93,11 +178,13 @@ class DashboardTile:
93
178
 
94
179
  @classmethod
95
180
  def from_blob(cls, dashboard, blob):
96
- result_file = result_file_from_blob(blob["viz_field"])
97
- return cls(dashboard.knex, dashboard, blob["title"], result_file, style=blob["style"])
98
-
181
+ result_file = result_file_from_blob(dashboard.knex, blob["viz_field"])
182
+ return cls(
183
+ dashboard.knex, dashboard, blob["title"], result_file, style=blob["style"]
184
+ )
185
+
99
186
  def __str__(self) -> str:
100
- return f"<Geoseeq DashboardTile: {self.dashboard.grn} \"{self.title}\" />"
101
-
187
+ return f'<Geoseeq DashboardTile: {self.dashboard.grn} "{self.title}" />'
188
+
102
189
  def __repr__(self) -> str:
103
- return str(self)
190
+ return str(self)
geoseeq/project.py CHANGED
@@ -358,4 +358,9 @@ class Project(RemoteObject):
358
358
  def grn(self):
359
359
  return f"grn::project:{self.uuid}"
360
360
 
361
+ def set_description(self, description):
362
+ self.description = description
363
+ self._modified = True
364
+ return self
365
+
361
366
  SampleGroup = Project # alias for backwards compatibility
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: geoseeq
3
- Version: 0.7.1
3
+ Version: 0.7.3.dev0
4
4
  Summary: GeoSeeq command line tools and python API
5
5
  Project-URL: Homepage, https://github.com/biotia/geoseeq_api_client
6
6
  Project-URL: Issues, https://github.com/biotia/geoseeq_api_client/issues
@@ -15,6 +15,11 @@ Requires-Dist: click
15
15
  Requires-Dist: pandas
16
16
  Requires-Dist: requests
17
17
  Requires-Dist: tqdm
18
+ Provides-Extra: test
19
+ Requires-Dist: pytest-cov>=4.0; extra == 'test'
20
+ Requires-Dist: pytest-mock>=3.10; extra == 'test'
21
+ Requires-Dist: pytest>=7.0; extra == 'test'
22
+ Requires-Dist: requests-mock>=1.11; extra == 'test'
18
23
  Description-Content-Type: text/markdown
19
24
 
20
25
  # Geoseeq API Client
@@ -39,7 +44,7 @@ Download this directory and run `python setup.py install`
39
44
 
40
45
  ---
41
46
 
42
- ## Using the Command Line
47
+ ## Using the Command Line
43
48
 
44
49
  Run the command line by typing `geoseeq` into a terminal prompt. See available options by adding `--help`
45
50
 
@@ -55,7 +60,7 @@ Once you have a token you will need to configure GeoSeeq to use it. Run `geoseeq
55
60
 
56
61
  ```
57
62
  $ geoseeq config
58
- Set custom profile name? (Leave blank for default) []:
63
+ Set custom profile name? (Leave blank for default) []:
59
64
  Enter the URL to use for GeoSeeq (Most users can use the default) [https://backend.geoseeq.com]:
60
65
  Enter your GeoSeeq API token:
61
66
  Profile configured.
@@ -77,11 +82,11 @@ $ geoseeq download files --extension fastq.gz "GeoSeeq/Example CLI Project"
77
82
 
78
83
  #### Uploading sequencing data
79
84
 
80
- GeoSeeq can automatically group fastq files into samples according to their
85
+ GeoSeeq can automatically group fastq files into samples according to their
81
86
  sample name, read number, and lane number. It supports paired end, single end,
82
87
  and nanopore reads.
83
88
 
84
- Assume you have data from a single ended sequencing run stored as fastq files:
89
+ Assume you have data from a single ended sequencing run stored as fastq files:
85
90
  - Sample1_L1_R1.fastq.gz
86
91
  - Sample1_L1_R2.fastq.gz
87
92
  - Sample1_L2_R1.fastq.gz
@@ -114,8 +119,13 @@ Note: You will need to have an API token set to use this command (see above)
114
119
 
115
120
  ## Using the Python API in a program
116
121
 
122
+
117
123
  Please see `geoseeq_api/cli/download.py` for examples of how to download data using the Python API directly.
118
124
 
125
+ ## Development in GitHub Codespaces
126
+
127
+ This repository includes a `.devcontainer` configuration so it can be opened directly in [GitHub Codespaces](https://docs.github.com/codespaces). When the codespace is created the development dependencies are installed and `pre-commit` hooks are set up automatically.
128
+
119
129
  ---
120
130
 
121
131
  ## Notes
@@ -7,7 +7,7 @@ geoseeq/file_system_cache.py,sha256=HzVZWtwLD2fjWWSo_UfWmGeBltm9He4lP_OqzKwNGWg,
7
7
  geoseeq/knex.py,sha256=zcjafsmUn9SC3LlRnvvaXpr-pHYZ0IXk7LpzuUoE3MI,8312
8
8
  geoseeq/organization.py,sha256=bJkYL8_D-k6IYAaii2ZbxjwYnXy6lvu6iLXscxKlA3w,2542
9
9
  geoseeq/pipeline.py,sha256=89mhWaecsKnm6tyRkdkaVp4dmZh62_v42Ze0oXf8OTY,9873
10
- geoseeq/project.py,sha256=Ba3yvrSyPVnEM5_VGSQu6YPH3CTwE3fHs4JjAepEK7g,13880
10
+ geoseeq/project.py,sha256=_8uttLKc6yVGDdJhPRmQOzzPeMYmUg0zBBPOAJc3yyo,14014
11
11
  geoseeq/remote_object.py,sha256=GYN6PKU7Zz3htIdpFjfZiFejzGqqJHbJyKlefM1Eixk,7151
12
12
  geoseeq/sample.py,sha256=HAfMiDPHp1UJgIA2lI6oGnNit4YKyj7nx9X07CCN98U,8316
13
13
  geoseeq/search.py,sha256=gawad6Cx5FxJBPlYkXWb-UKAO-UC0_yhvyU9Ca1kaNI,3388
@@ -25,7 +25,7 @@ geoseeq/cli/download.py,sha256=Znjuc9IFOcIa5_Od9mFXHJdYAJtgw9Bc_wPPcOVXn7s,21298
25
25
  geoseeq/cli/fastq_utils.py,sha256=-bmeQLaiMBm57zWOF0R5OlWTU0_3sh1JBC1RYw2BOFM,3083
26
26
  geoseeq/cli/find_grn.py,sha256=oMDxkzGQBQb2_cCuvmwoeHOsFHqyO9RLeJzrB6bAe5M,439
27
27
  geoseeq/cli/get_eula.py,sha256=79mbUwyiF7O1r0g6UTxG9kJGQEqKuH805E6eLkPC6Y4,997
28
- geoseeq/cli/main.py,sha256=jN3ar-CL5glFnlJhelXliESoP_W2QMrVKkHPQtvhU54,3982
28
+ geoseeq/cli/main.py,sha256=_P_pp_ohm0Pq390FgWjNw-oQA06KGbQPAGbvgY-iL6U,4137
29
29
  geoseeq/cli/manage.py,sha256=wGXAcVaXqE5JQEU8Jh6OlHr02nB396bpS_SFcOZdrEo,5929
30
30
  geoseeq/cli/progress_bar.py,sha256=p1Xl01nkYxSBZCB30ue2verIIi22W93m3ZAMAxipD0g,738
31
31
  geoseeq/cli/project.py,sha256=V5SdXm2Hwo2lxrkpwRDedw-mAE4XnM2uwT-Gj1D90VQ,3030
@@ -42,7 +42,7 @@ geoseeq/cli/shared_params/id_handlers.py,sha256=KtzflnplYVkXsyqI5Ej6r-_BwQnuXVHP
42
42
  geoseeq/cli/shared_params/obj_getters.py,sha256=ZSkt6LnDkVFlNVYKgLrjzg60-6BthZMr3eeD3HNqzac,2741
43
43
  geoseeq/cli/shared_params/opts_and_args.py,sha256=_DcJ-TqgrbBaeDd-kuHEx2gLZPQN6EHZYWh8Ag-d8Vg,2091
44
44
  geoseeq/cli/upload/__init__.py,sha256=tRrljqG7uBM6zVBKpDw1zevHz6Vy418HuIYZKwByyWg,862
45
- geoseeq/cli/upload/upload.py,sha256=U9w18sG6dZ0uJoAMcQDLdrEtgmRaSaPS7-8KM5LkVd4,14220
45
+ geoseeq/cli/upload/upload.py,sha256=tBga8TW_5qXM4avXH5BAfLrYNms_5eqdyJZex47hZ90,14294
46
46
  geoseeq/cli/upload/upload_advanced.py,sha256=1pjtbe8EidIo4eR1_oVD00rPCTxYj8CRqB8D9buA62M,12432
47
47
  geoseeq/cli/upload/upload_reads.py,sha256=dZK_Mh3a3NdC4zVB4Yyfz-NViCK9_rROQbmLWTrh8Pc,11642
48
48
  geoseeq/contrib/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
@@ -52,7 +52,7 @@ geoseeq/contrib/ncbi/api.py,sha256=WQeLoGA_-Zha-QeSO8_i7HpvXyD8UkV0qc5okm11KiA,1
52
52
  geoseeq/contrib/ncbi/bioproject.py,sha256=_oThTd_iLDOC8cLOlJKAatSr362OBYZCEV3YrqodhFg,4341
53
53
  geoseeq/contrib/ncbi/cli.py,sha256=j9zEcaZPTryK3a4xluRxigcJKDhRpRxbp3KZSx-Bfhk,2400
54
54
  geoseeq/contrib/ncbi/setup_logging.py,sha256=Tp1bY1U0f-o739aHpvVYriG2qdd1lFvCYBXZeXQgt-w,175
55
- geoseeq/dashboard/dashboard.py,sha256=HOUJoQcFGLc3JL5UVIYETq6CkQEMP2I4WaPr2u9YV3Q,3297
55
+ geoseeq/dashboard/dashboard.py,sha256=0ISzcTby35oJVsOCeg4b_7Em6hRsh3QzsnbChf946Eo,5564
56
56
  geoseeq/file_system/filesystem_download.py,sha256=8bcnxjWltekmCvb5N0b1guBIjLp4-CL2VtsEok-snv4,16963
57
57
  geoseeq/file_system/main.py,sha256=4HgYGq7WhlF96JlVIf16iFBTDujlBpxImmtoh4VCzDA,3627
58
58
  geoseeq/id_constructors/__init__.py,sha256=w5E0PNQ9UuAxBeZbDI7KBnUoERd85gGz3nScz45bd2o,126
@@ -92,8 +92,8 @@ geoseeq/vc/vc_cache.py,sha256=P4LXTbq2zOIv1OhP7Iw5MmypR2vXuy29Pq5K6gRvi-M,730
92
92
  geoseeq/vc/vc_dir.py,sha256=A9CLTh2wWCRzZjiLyqXD1vhtsWZGD3OjaMT5KqlfAXI,457
93
93
  geoseeq/vc/vc_sample.py,sha256=qZeioWydXvfu4rGMs20nICfNcp46y_XkND-bHdV6P5M,3850
94
94
  geoseeq/vc/vc_stub.py,sha256=IQr8dI0zsWKVAeY_5ybDD6n49_3othcgfHS3P0O9tuY,3110
95
- geoseeq-0.7.1.dist-info/METADATA,sha256=7muy1ekQlBoXXfeEAz6NeuvXHgNttqHKJkCVSIqxdIU,4892
96
- geoseeq-0.7.1.dist-info/WHEEL,sha256=qtCwoSJWgHk21S1Kb4ihdzI2rlJ1ZKaIurTj_ngOhyQ,87
97
- geoseeq-0.7.1.dist-info/entry_points.txt,sha256=yF-6KDM8zXib4Al0qn49TX-qM7PUkWUIcYtsgt36rjM,45
98
- geoseeq-0.7.1.dist-info/licenses/LICENSE,sha256=IuhIl1XCxXLPLJT_coN1CNqQU4Khlq7x4IdW7ioOJD8,1067
99
- geoseeq-0.7.1.dist-info/RECORD,,
95
+ geoseeq-0.7.3.dev0.dist-info/METADATA,sha256=GqNnxtN09jNv5HRMkxGp5D8ZfrJUyJdxlzL5-6N2Ogw,5415
96
+ geoseeq-0.7.3.dev0.dist-info/WHEEL,sha256=qtCwoSJWgHk21S1Kb4ihdzI2rlJ1ZKaIurTj_ngOhyQ,87
97
+ geoseeq-0.7.3.dev0.dist-info/entry_points.txt,sha256=yF-6KDM8zXib4Al0qn49TX-qM7PUkWUIcYtsgt36rjM,45
98
+ geoseeq-0.7.3.dev0.dist-info/licenses/LICENSE,sha256=IuhIl1XCxXLPLJT_coN1CNqQU4Khlq7x4IdW7ioOJD8,1067
99
+ geoseeq-0.7.3.dev0.dist-info/RECORD,,