agilicus 1.235.6__py3-none-any.whl → 1.235.7__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.
@@ -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,,