agilicus 1.235.6__py3-none-any.whl → 1.235.7__py3-none-any.whl

Sign up to get free protection for your applications and to get access to all the features.
@@ -77,7 +77,7 @@ class ApiClient(object):
77
77
  self.default_headers[header_name] = header_value
78
78
  self.cookie = cookie
79
79
  # Set default User-Agent.
80
- self.user_agent = 'OpenAPI-Generator/1.235.6/python'
80
+ self.user_agent = 'OpenAPI-Generator/1.235.7/python'
81
81
 
82
82
  def __enter__(self):
83
83
  return self
@@ -387,7 +387,7 @@ class Configuration(object):
387
387
  "OS: {env}\n"\
388
388
  "Python Version: {pyversion}\n"\
389
389
  "Version of the API: 2023.12.15\n"\
390
- "SDK Package Version: 1.235.6".\
390
+ "SDK Package Version: 1.235.7".\
391
391
  format(env=sys.platform, pyversion=sys.version)
392
392
 
393
393
  def get_host_settings(self):
@@ -4,7 +4,7 @@ Agilicus is API-first. Modern software is controlled by other software, is open,
4
4
  The `agilicus_api` package is automatically generated by the [OpenAPI Generator](https://openapi-generator.tech) project:
5
5
 
6
6
  - API version: 2023.12.15
7
- - Package version: 1.235.6
7
+ - Package version: 1.235.7
8
8
  - Build package: org.openapitools.codegen.languages.PythonClientCodegen
9
9
  For more information, please visit [https://www.agilicus.com/api](https://www.agilicus.com/api)
10
10
 
@@ -15,13 +15,13 @@ from agilicus.output.table import format_table
15
15
  def cli_command_list_features(ctx, show_columns, reset_columns, **kwargs):
16
16
  results = features.list_features(ctx, **kwargs)
17
17
  spec = """
18
- - metadata.id
19
- - spec.name
20
- - spec.priority
21
- - spec.key
22
- - spec.value
23
- - status.products:
24
- - spec.label
18
+ - metadata.id(newname=id)
19
+ - spec.name(newname=name)
20
+ - spec.priority(newname=priority)
21
+ - spec.key(newname=key)
22
+ - spec.value(newname=value)
23
+ - status.products(out_name=products):
24
+ - spec.label(newname=label)
25
25
  """
26
26
  columns = make_columns(
27
27
  ctx,
@@ -97,11 +97,11 @@ def cli_command_list_org_features(ctx, show_columns, reset_columns, **kwargs):
97
97
  ctx,
98
98
  results,
99
99
  """
100
- - metadata.id
101
- - spec.name
102
- - spec.priority
103
- - spec.key
104
- - spec.value
100
+ - metadata.id(newname=id)
101
+ - spec.name(newname=name)
102
+ - spec.priority(newname=priority)
103
+ - spec.key(newname=key)
104
+ - spec.value(newname=value)
105
105
  """,
106
106
  show=show_columns,
107
107
  clear=reset_columns,
agilicus/main.py CHANGED
@@ -6787,8 +6787,17 @@ def override_replace(
6787
6787
  @click.option("--usage-group-by-org", default=None, multiple=True)
6788
6788
  @click.option("--subscription-id", default=None)
6789
6789
  @click.option("--billing-account-id", default=None)
6790
+ @click.option("--feature-id", default=None, multiple=True)
6791
+ @click.option("--remove-feature-id", default=None, multiple=True)
6790
6792
  @click.pass_context
6791
- def update_subscription(ctx, subscription_id, billing_account_id=None, **kwargs):
6793
+ def update_subscription(
6794
+ ctx,
6795
+ subscription_id,
6796
+ billing_account_id=None,
6797
+ feature_id=None,
6798
+ remove_feature_id=None,
6799
+ **kwargs,
6800
+ ):
6792
6801
  """Update the min/max overrides in a customer subscription."""
6793
6802
  bsub = billing.get_billing_subscription(ctx, kwargs["billing_subscription_id"])
6794
6803
  usage_override = bsub.spec.usage_override
@@ -6822,8 +6831,23 @@ def update_subscription(ctx, subscription_id, billing_account_id=None, **kwargs)
6822
6831
  if billing_account_id:
6823
6832
  bsub.spec.billing_account_id = billing_account_id
6824
6833
 
6834
+ if feature_id is not None:
6835
+ for feature_id in feature_id:
6836
+ bsub.spec.feature_overrides.append(feature_id)
6837
+
6838
+ if remove_feature_id is not None:
6839
+ old_features = bsub.spec.feature_overrides
6840
+ bsub.spec.feature_overrides = []
6841
+ for feature_id in old_features:
6842
+ if feature_id in remove_feature_id:
6843
+ # needs to be removed.
6844
+ continue
6845
+ bsub.spec.feature_overrides.append(feature_id)
6846
+
6825
6847
  sub = billing.update_subscription(
6826
- ctx, billing_subscription_id=kwargs["billing_subscription_id"], subscription=bsub
6848
+ ctx,
6849
+ billing_subscription_id=kwargs["billing_subscription_id"],
6850
+ subscription=bsub,
6827
6851
  )
6828
6852
  output_entry(ctx, sub.to_dict())
6829
6853
 
@@ -0,0 +1,134 @@
1
+ import yaml
2
+ import re
3
+ from collections import OrderedDict
4
+ from . import table
5
+
6
+
7
+ class ColumnBuilder:
8
+ def __init__(self, ctx, result_list):
9
+ self.ctx = ctx
10
+ self.result_list = result_list
11
+
12
+ def _get_column_names(self, subtable_column_name):
13
+ results = set()
14
+ if not self.result_list:
15
+ return results
16
+ obj = self.result_list[0]
17
+ if subtable_column_name:
18
+ obj = getattr(obj, subtable_column_name)
19
+ if not obj:
20
+ # nothing available
21
+ return results
22
+ obj = obj[0]
23
+ return set(obj.to_dict().keys())
24
+
25
+ def _make_subtable(self, table_name, format_doc):
26
+ m = re.search("(.*)\\((.+)\\).*", table_name)
27
+ all_options = {}
28
+ if m:
29
+ found = m.group(2)
30
+ for option in found.split(","):
31
+ split_str = option.split("=")
32
+ all_options[split_str[0]] = split_str[1]
33
+ table_name = m.group(1)
34
+ columns = self.build_columns(format_doc, subtable_column_name=table_name)
35
+ return table.subtable(
36
+ self.ctx,
37
+ table_name,
38
+ columns=columns,
39
+ optional=True,
40
+ **all_options,
41
+ )
42
+
43
+ def _get_output_column(self, column_name: str):
44
+ m = re.search("(.*)\\((.+)\\).*", column_name)
45
+ if m:
46
+ found = m.group(2)
47
+ all_options = {}
48
+ for option in found.split(","):
49
+ split_str = option.split("=")
50
+ all_options[split_str[0]] = split_str[1]
51
+ return table.column(m.group(1), optional=True, **all_options)
52
+ return table.column(column_name, optional=True)
53
+
54
+ def build_columns(
55
+ self,
56
+ format_doc,
57
+ subtable_column_name=None,
58
+ **kwargs,
59
+ ):
60
+ column_names = OrderedDict()
61
+ for column_name in format_doc:
62
+ if column_name == "all":
63
+ for c in self._get_column_names(subtable_column_name):
64
+ column_names[c] = self._get_output_column(c)
65
+ elif isinstance(column_name, dict):
66
+ sub_table_col = list(column_name.keys())[0]
67
+ sub_table_val = column_name[sub_table_col]
68
+ column_names[sub_table_col] = self._make_subtable(
69
+ sub_table_col,
70
+ sub_table_val,
71
+ )
72
+ else:
73
+ column_names[column_name] = self._get_output_column(column_name)
74
+
75
+ return list(column_names.values())
76
+
77
+
78
+ def make_columns(
79
+ ctx,
80
+ result_list,
81
+ base_columns,
82
+ show=None,
83
+ clear=False,
84
+ **kwargs,
85
+ ):
86
+ """
87
+ A generic build for making columns, configurable by user
88
+ to choose specific columns or subtables.
89
+
90
+ Add the following options to your command:
91
+ @click.option("--show-columns", type=str, default=None)
92
+ @click.option("--reset-columns", is_flag=True, default=False)
93
+
94
+ Then call make_columns (for example)
95
+ columns = make_columns(ctx, results, ["id", "email"], show=show, clear=clear)
96
+
97
+ This make the 'default' show have columns 'id', 'email'.
98
+
99
+ You may clear it, and start from scratch:
100
+
101
+ show just email:
102
+ --clear --show email
103
+
104
+ show email and the id
105
+ --clear --show id,email
106
+
107
+ show all columns
108
+ --clear --show all
109
+
110
+ show a subtable:
111
+ --clear --show "[id,email,upstream_user_identities: [all]]"
112
+
113
+ show a specific column in the subtable:
114
+ --clear --show "[id,email,upstream_user_identities: [spec.upstream_idp_id]]"
115
+
116
+ rename the output column
117
+ --clear --show "[id,email,upstream_user_identities: [spec.upstream_idp_id(newname=upstream_idp_id)]]" # noqa
118
+
119
+ Note that the show format is a valid yaml doc. Its a list of columns, when
120
+ a mapping (dictionary) is found that is assumed to be a subtable, where the
121
+ key name is the subtable name
122
+ """
123
+ format_doc = []
124
+ if not clear and base_columns:
125
+ format_doc = yaml.safe_load(base_columns)
126
+
127
+ if show:
128
+ if "[" not in show:
129
+ # incase the user hasn't created a valid yaml list,
130
+ # make it a list.
131
+ show = "[" + show + "]"
132
+ format_doc.extend(yaml.safe_load(show))
133
+
134
+ return ColumnBuilder(ctx, result_list).build_columns(format_doc, **kwargs)
agilicus/output/table.py CHANGED
@@ -1,9 +1,7 @@
1
1
  import operator
2
2
  import json
3
- import yaml
4
3
  from babel import numbers
5
4
  from datetime import timezone, datetime
6
- from collections import OrderedDict
7
5
 
8
6
  from agilicus import context
9
7
  from agilicus.output.json import convert_to_json
@@ -12,6 +10,7 @@ from dataclasses import dataclass
12
10
  from typing import Callable
13
11
 
14
12
  from prettytable import PrettyTable
13
+ from . import column_builder
15
14
 
16
15
 
17
16
  def format_date(date_input):
@@ -289,109 +288,5 @@ def output_entry(ctx, entry):
289
288
  print(table)
290
289
 
291
290
 
292
- def get_column_names(result_list, subtable_column_name):
293
- results = set()
294
- if not result_list:
295
- return results
296
- obj = result_list[0]
297
- if subtable_column_name:
298
- obj = getattr(obj, subtable_column_name)
299
- if not obj:
300
- # nothing available
301
- return results
302
- obj = obj[0]
303
- return set(obj.to_dict().keys())
304
-
305
-
306
- def make_subtable(ctx, result_list, table_name, format_doc):
307
- columns = _build_columns(
308
- ctx, result_list, format_doc, subtable_column_name=table_name
309
- )
310
- return subtable(
311
- ctx,
312
- table_name,
313
- columns=columns,
314
- optional=True,
315
- )
316
-
317
-
318
- def make_columns(
319
- ctx,
320
- result_list,
321
- base_columns,
322
- show=None,
323
- clear=False,
324
- **kwargs,
325
- ):
326
- """
327
- A generic build for making columns, configurable by user
328
- to choose specific columns or subtables.
329
-
330
- Add the following options to your command:
331
- @click.option("--show-columns", type=str, default=None)
332
- @click.option("--reset-columns", is_flag=True, default=False)
333
-
334
- Then call make_columns (for example)
335
- columns = make_columns(ctx, results, ["id", "email"], show=show, clear=clear)
336
-
337
- This make the 'default' show have columns 'id', 'email'.
338
-
339
- You may clear it, and start from scratch:
340
-
341
- show just email:
342
- --clear --show email
343
-
344
- show email and the id
345
- --clear --show id,email
346
-
347
- show all columns
348
- --clear --show all
349
-
350
- show a subtable:
351
- --clear --show id,email,upstream_user_identities: [all]
352
-
353
- show a specific column in the subtable:
354
- --clear --show id,email,upstream_user_identities: [spec.upstream_idp_id]
355
-
356
- Note that the show format is a valid yaml doc. Its a list of columns, when
357
- a mapping (dictionary) is found that is assumed to be a subtable, where the
358
- key name is the subtable name
359
- """
360
- format_doc = []
361
- if not clear and base_columns:
362
- format_doc = yaml.safe_load(base_columns)
363
-
364
- if show:
365
- if "[" not in show:
366
- # incase the user hasn't created a valid yaml list,
367
- # make it a list.
368
- show = "[" + show + "]"
369
- format_doc.extend(yaml.safe_load(show))
370
- return _build_columns(ctx, result_list, format_doc, **kwargs)
371
-
372
-
373
- def _build_columns(
374
- ctx,
375
- result_list,
376
- format_doc,
377
- subtable_column_name=None,
378
- **kwargs,
379
- ):
380
- column_names = OrderedDict()
381
- for column_name in format_doc:
382
- if column_name == "all":
383
- for c in get_column_names(result_list, subtable_column_name):
384
- column_names[c] = column(c, optional=True)
385
- elif isinstance(column_name, dict):
386
- sub_table_col = list(column_name.keys())[0]
387
- sub_table_val = column_name[sub_table_col]
388
- column_names[sub_table_col] = make_subtable(
389
- ctx,
390
- result_list,
391
- sub_table_col,
392
- sub_table_val,
393
- )
394
- else:
395
- column_names[column_name] = column(column_name, optional=True)
396
-
397
- return list(column_names.values())
291
+ def make_columns(*args, **kwargs):
292
+ return column_builder.make_columns(*args, **kwargs)
File without changes
@@ -0,0 +1,73 @@
1
+ import agilicus
2
+ from .. import column_builder
3
+
4
+
5
+ def test_simple():
6
+ assert column_builder.make_columns(None, [], "") == []
7
+
8
+
9
+ def test_show_single_column():
10
+ results = [
11
+ agilicus.User._from_openapi_data(
12
+ email=agilicus.Email("foo@bar.com"), type="user"
13
+ )
14
+ ]
15
+ columns = column_builder.make_columns(None, results, "[email]")
16
+ assert len(columns) == 1
17
+ assert columns[0].in_name == "email"
18
+ assert columns[0].out_name == "email"
19
+
20
+
21
+ def test_show_multi_column():
22
+ results = [
23
+ agilicus.User._from_openapi_data(
24
+ id="one", email=agilicus.Email("foo@bar.com"), type="user"
25
+ )
26
+ ]
27
+ columns = column_builder.make_columns(None, results, "[id,email]")
28
+ assert len(columns) == 2
29
+ assert columns[0].in_name == "id"
30
+ assert columns[0].out_name == "id"
31
+
32
+ assert columns[1].in_name == "email"
33
+ assert columns[1].out_name == "email"
34
+
35
+
36
+ def test_rename_col():
37
+ results = [
38
+ agilicus.User._from_openapi_data(
39
+ id="one", email=agilicus.Email("foo@bar.com"), type="user"
40
+ )
41
+ ]
42
+ columns = column_builder.make_columns(
43
+ None, results, "[id(newname=blah),email(newname=huh)]"
44
+ )
45
+ assert len(columns) == 2
46
+ assert columns[0].in_name == "id"
47
+ assert columns[0].out_name == "blah"
48
+
49
+ assert columns[1].in_name == "email"
50
+ assert columns[1].out_name == "huh"
51
+
52
+
53
+ def test_subtable():
54
+ spec = agilicus.UpstreamUserIdentitySpec(
55
+ upstream_user_id="user-id", upstream_idp_id="idp-id", local_user_id="local-id"
56
+ )
57
+ identities = [agilicus.UpstreamUserIdentity(spec)]
58
+ results = [
59
+ agilicus.User._from_openapi_data(
60
+ id="one",
61
+ email=agilicus.Email("foo@bar.com"),
62
+ type="user",
63
+ upstream_user_identites=identities,
64
+ )
65
+ ]
66
+ columns = column_builder.make_columns(
67
+ None,
68
+ results,
69
+ "[id,email,upstream_user_identities: [upstream_user_id,local_user_id]]",
70
+ )
71
+ assert len(columns) == 3
72
+ assert columns[2].in_name == "upstream_user_identities"
73
+ assert columns[2].out_name == "upstream_user_identities"
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: agilicus
3
- Version: 1.235.6
3
+ Version: 1.235.7
4
4
  Summary: Agilicus SDK
5
5
  Home-page: https://www.agilicus.com/
6
6
  License: MIT
@@ -67,9 +67,9 @@ agilicus/agilicus_api/api/users_api.py,sha256=LYBkMTRfpgSYHuFgFnkndHdJn9J__dGbqK
67
67
  agilicus/agilicus_api/api/users_api_mock.py,sha256=wA_xiqL3Pz3KjljKlsmf5NveLZS1FpbaKJHBp7QvarY,15411
68
68
  agilicus/agilicus_api/api/whoami_api.py,sha256=g871DyNxDhGWCmkr-jiMan9gsz9vf9CTkhZ_0VG5iuQ,7941
69
69
  agilicus/agilicus_api/api/whoami_api_mock.py,sha256=rlvZoWnMCqORMZBg7SOv6d3xp52kELdh6wXcCaIZ93w,346
70
- agilicus/agilicus_api/api_client.py,sha256=Dz7TDPg-wsr4tFY0caAIc8-VxRNY1XfoZbdVZgGRf_Q,38845
70
+ agilicus/agilicus_api/api_client.py,sha256=zByfZSGzpdL56Th5cUFUiz31gx_C8uDPiIj8XDo8cPo,38845
71
71
  agilicus/agilicus_api/apis/__init__.py,sha256=m_hg6OJsEsMp6mZ1mn9OlaTflLjrU3Jc-jvYD9gi_PA,2092
72
- agilicus/agilicus_api/configuration.py,sha256=5YS_GAMdnbQD6GJk2jxHZhqGGwd0-53-M0WdsdNF2lE,18447
72
+ agilicus/agilicus_api/configuration.py,sha256=N3olY94-AK3IiVFHCZwHYtguOXLAL_d2TgcBhFpeQ8k,18447
73
73
  agilicus/agilicus_api/docs/APIKey.md,sha256=4cKuz4_l9HcEDnUrLwYbEnn9C2WoDayrjfrY1Ixgaf4,1747
74
74
  agilicus/agilicus_api/docs/APIKeyIntrospect.md,sha256=nJ-zkuFm3JMbWFDYYN_vYyQk1snGBtBvIxtCQxamhAU,1019
75
75
  agilicus/agilicus_api/docs/APIKeyIntrospectAuthorizationInfo.md,sha256=7RApOOLjvWQs5sw2jb25g7i3Kta1BiEY-s8VRXfppH8,725
@@ -2338,7 +2338,7 @@ agilicus/agilicus_api/test/test_x509_root_certificate.py,sha256=Lfg4RqEI4LW1TcMv
2338
2338
  agilicus/agilicus_api/test/test_x509_root_certificate_spec.py,sha256=8rBBKZ1fEUFWalJ-Us0gW8YsEiQ0CvWx9rwvYXY2xSw,2832
2339
2339
  agilicus/agilicus_api/test/test_x509_root_certificate_status.py,sha256=sU8X_0AYylgIY7t39Eu1S_0EkxfJF25QBxIVOQlrwoU,2846
2340
2340
  agilicus/agilicus_api/test/test_xss_settings.py,sha256=e_pj73f8a6buA5B0cZgLV4Pu2BXUyfFmLLxVvW3I3Tw,2746
2341
- agilicus/agilicus_api_README.md,sha256=rflvt4yW40OJvrQxggv3Dxw7FETuzo9wvcF3sXi9EsY,150199
2341
+ agilicus/agilicus_api_README.md,sha256=ZPZtB66boJs_i4YT5e-fFnWfGU-JV_fMFIcBFGvO8VE,150199
2342
2342
  agilicus/aliases.ini,sha256=MxqiVo2f2xdUDVF1YDkNW36AIqN8hrYjlTVfraEUZXY,455
2343
2343
  agilicus/amq.py,sha256=yxi-YTbJPVl10s78Hlr1dmrQR63iaSIoROGVILzFPmE,1775
2344
2344
  agilicus/apps.py,sha256=3j7Yj82S8hr4IHw2uzYiJ1-kOq_9PT1G0-0ZbxflAQ0,48757
@@ -2365,7 +2365,7 @@ agilicus/env_config.py,sha256=sqg9hecJYA7jXj58TmZOvmYboqIKbZ5Rxl2Rqe75M4Q,7629
2365
2365
  agilicus/examples/update_user.py,sha256=jGaEVTWFFlD26soSEYYcAtlGfELU85z3YnXAwK5q4fM,1082
2366
2366
  agilicus/features/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
2367
2367
  agilicus/features/features.py,sha256=nqxAo69Bn1zafBB2VbiCXixa17jWMrxN6V0u3iyqs0c,2327
2368
- agilicus/features/features_main.py,sha256=ptMGWWwoKmSWWbj-h87K2p9MEEVq1Afp4AzEg0Ak2-4,3601
2368
+ agilicus/features/features_main.py,sha256=InvXz-Eka6ySQAUM-u6KBkRPEY5lviHuZXeow5uqLto,3779
2369
2369
  agilicus/features.py,sha256=wnh3uD57xZRzt4aCYCrGXu4DaMKv2-uwZc3akUiXUYE,1118
2370
2370
  agilicus/file_shares.py,sha256=ZwO3OwfRsDTZu6VwDcvqyC5OeHWnoA9hQ8vzygXGeE8,4326
2371
2371
  agilicus/files.py,sha256=rgyUytII4LjsPdIIJVvqx8GnsUQmowDbGKK0VKGiglk,7272
@@ -2385,14 +2385,17 @@ agilicus/labels/labels_main.py,sha256=aXRNRT1CPiUc0x1Gh_VoCmzrbROzsC5e9ycrwPNT0q
2385
2385
  agilicus/launchers.py,sha256=Yy59dzHMCz9ZSs_mMjVGaTw3vdNX58WsmIfX56by69U,11077
2386
2386
  agilicus/logs.py,sha256=tS8c_sdre1Dncrl59GVGQ0L3d2jtwlVjvIMl3SHJraY,766
2387
2387
  agilicus/lookups.py,sha256=MNmNsKpP7Fq_poLAnL9xo_iptFilKM9ziGLyIe8VKaw,669
2388
- agilicus/main.py,sha256=X0U93Gx8LG0cxYjjZWnV2WysRJE9AwFJU9bvAH5qDEs,255154
2388
+ agilicus/main.py,sha256=MIkxsAQM3MB2xMP-toZ1iRlQZiXJuEPh7oxFUert3Mk,255835
2389
2389
  agilicus/messages.py,sha256=Ydm-VhAsK23UnYdstv_HsOybBODfui5ubKc7F8R_dsw,5187
2390
2390
  agilicus/metrics.py,sha256=9l0T7ea4Gvcj7A1C4uC4mv6v26_S8HKnmIuxJjq3mQw,1424
2391
2391
  agilicus/orgs.py,sha256=hrKmF8RI4H1htQNWPiwFOzy2EPBLdgNpV4c9CMxYSiM,12701
2392
2392
  agilicus/output/__init__.py,sha256=UKZbHS4t15vazJuN46FN-3HHqkxMXU0p3df2VcsSLcY,110
2393
+ agilicus/output/column_builder.py,sha256=TWo4t8ygaTUv7qjD_moDroD1bKzzyTIao0FmLy5gs4o,4284
2393
2394
  agilicus/output/console.py,sha256=xBURxlA7H1kmQ7zIKuifs_aQJq1cvmCJ5CtQVSo3_Ns,400
2394
2395
  agilicus/output/json.py,sha256=5UU8Fm_b46y8iu3EPkg2eWwdbCyubgCxIdfecDTd4_Y,663
2395
- agilicus/output/table.py,sha256=DKEvk2cD1u54iJzDEGe7BwHoPv4anT8I4C8ZBsAFfAw,10512
2396
+ agilicus/output/table.py,sha256=RzPMpaFPP5HP7h6LQSQF8nNnDBErJnOjosuCGiDS2jI,7542
2397
+ agilicus/output/tests/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
2398
+ agilicus/output/tests/column_builder_test.py,sha256=fKP4V5sqXtmEIr-Q0gWVSFdBqCUtugZkP6G5gML_T7I,2130
2396
2399
  agilicus/pagination/pagination.py,sha256=AG2DI6Kurv6akZ6lV2M3ynDtE8C4js5x3wCOVzasCuI,1576
2397
2400
  agilicus/patches.py,sha256=qTqLOgCAcFZPcPOkgfqMnK9bnqTXMvj_0ERsjRFcZug,1384
2398
2401
  agilicus/permissions.py,sha256=uB65yuDFICp1N10m0cdUjgizx9MQzAbLbAsBSTw1Rcc,2117
@@ -2419,8 +2422,8 @@ agilicus/trusted_certs/trusted_certs_main.py,sha256=6dHHWXvNIcUa_nA9ptigL4Vibe4n
2419
2422
  agilicus/users.py,sha256=lT1EoyjwKjRoc0NoU6ANGHRSetN-t8AMgkllCKZP0UM,38746
2420
2423
  agilicus/version.py,sha256=G9OFdL1v_4dLDfk6I6taDNypM5bbO-JHAwilsu9LYgg,23
2421
2424
  agilicus/whoami.py,sha256=kqghtWMgZOd2rhKmfguDwCTm6A3gNS8Kj-S2IBxBtl0,206
2422
- agilicus-1.235.6.dist-info/LICENSE.txt,sha256=Zq4tqiCroC2CVrBB_PWjapRdvpae23nljdiaSkOzUho,1061
2423
- agilicus-1.235.6.dist-info/METADATA,sha256=p2K1arVkny7oaLBSpYybJXxSaOX0Gx_CvdOhKsMvlRA,3742
2424
- agilicus-1.235.6.dist-info/WHEEL,sha256=Zb28QaM1gQi8f4VCBhsUklF61CTlNYfs9YAZn-TOGFk,88
2425
- agilicus-1.235.6.dist-info/entry_points.txt,sha256=a66hGozzLkHu0IewFzIMbSAhMTNTddUaA2T3_16Gb_s,51
2426
- agilicus-1.235.6.dist-info/RECORD,,
2425
+ agilicus-1.235.7.dist-info/LICENSE.txt,sha256=Zq4tqiCroC2CVrBB_PWjapRdvpae23nljdiaSkOzUho,1061
2426
+ agilicus-1.235.7.dist-info/METADATA,sha256=5kIvoRTQYYlA8PeqFzf4hi6dilXYLkKy6INVmDxj4uM,3742
2427
+ agilicus-1.235.7.dist-info/WHEEL,sha256=Zb28QaM1gQi8f4VCBhsUklF61CTlNYfs9YAZn-TOGFk,88
2428
+ agilicus-1.235.7.dist-info/entry_points.txt,sha256=a66hGozzLkHu0IewFzIMbSAhMTNTddUaA2T3_16Gb_s,51
2429
+ agilicus-1.235.7.dist-info/RECORD,,