bluer-objects 6.175.1__py3-none-any.whl → 6.181.1__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.
Potentially problematic release.
This version of bluer-objects might be problematic. Click here for more details.
- bluer_objects/.abcli/tests/storage_public_upload.sh +18 -0
- bluer_objects/.abcli/tests/{storage.sh → storage_upload_download.sh} +2 -2
- bluer_objects/.abcli/upload.sh +4 -2
- bluer_objects/__init__.py +1 -1
- bluer_objects/config.env +1 -0
- bluer_objects/env.py +1 -0
- bluer_objects/help/upload.py +6 -1
- bluer_objects/storage/WebDAV.py +6 -0
- bluer_objects/storage/WebDAVrequest.py +7 -0
- bluer_objects/storage/WebDAVzip.py +6 -0
- bluer_objects/storage/__init__.py +2 -0
- bluer_objects/storage/__main__.py +7 -0
- bluer_objects/storage/base.py +3 -1
- bluer_objects/storage/s3.py +20 -2
- bluer_objects/tests/test_env.py +1 -0
- {bluer_objects-6.175.1.dist-info → bluer_objects-6.181.1.dist-info}/METADATA +2 -2
- {bluer_objects-6.175.1.dist-info → bluer_objects-6.181.1.dist-info}/RECORD +20 -19
- {bluer_objects-6.175.1.dist-info → bluer_objects-6.181.1.dist-info}/WHEEL +0 -0
- {bluer_objects-6.175.1.dist-info → bluer_objects-6.181.1.dist-info}/licenses/LICENSE +0 -0
- {bluer_objects-6.175.1.dist-info → bluer_objects-6.181.1.dist-info}/top_level.txt +0 -0
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
#! /usr/bin/env bash
|
|
2
|
+
|
|
3
|
+
function test_bluer_objects_storage_public_upload() {
|
|
4
|
+
local options=$1
|
|
5
|
+
|
|
6
|
+
local object_name=test_bluer_objects_storage_public_upload-$(bluer_ai_string_timestamp_short)
|
|
7
|
+
local object_path=$ABCLI_OBJECT_ROOT/$object_name
|
|
8
|
+
mkdir -pv $object_path
|
|
9
|
+
|
|
10
|
+
bluer_objects_create_test_asset \
|
|
11
|
+
$object_name \
|
|
12
|
+
--depth 1
|
|
13
|
+
[[ $? -ne 0 ]] && return 1
|
|
14
|
+
|
|
15
|
+
bluer_objects_upload \
|
|
16
|
+
public \
|
|
17
|
+
$object_name
|
|
18
|
+
}
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
#! /usr/bin/env bash
|
|
2
2
|
|
|
3
|
-
function
|
|
3
|
+
function test_bluer_objects_storage_upload_download() {
|
|
4
4
|
local options=$1
|
|
5
5
|
|
|
6
|
-
local object_name=
|
|
6
|
+
local object_name=test_bluer_objects_storage_upload_download-$(bluer_ai_string_timestamp_short)
|
|
7
7
|
local object_path=$ABCLI_OBJECT_ROOT/$object_name
|
|
8
8
|
mkdir -pv $object_path
|
|
9
9
|
|
bluer_objects/.abcli/upload.sh
CHANGED
|
@@ -3,6 +3,7 @@
|
|
|
3
3
|
function bluer_objects_upload() {
|
|
4
4
|
local options=$1
|
|
5
5
|
local filename=$(bluer_ai_option "$options" filename)
|
|
6
|
+
local public=$(bluer_ai_option_int "$options" public 0)
|
|
6
7
|
|
|
7
8
|
local object_name=$(bluer_ai_clarify_object $2 .)
|
|
8
9
|
local object_path=$ABCLI_OBJECT_ROOT/$object_name
|
|
@@ -12,10 +13,11 @@ function bluer_objects_upload() {
|
|
|
12
13
|
python3 -m bluer_objects.storage \
|
|
13
14
|
upload \
|
|
14
15
|
--object_name $object_name \
|
|
15
|
-
--filename "$filename"
|
|
16
|
+
--filename "$filename" \
|
|
17
|
+
--public $public
|
|
16
18
|
[[ $? -ne 0 ]] && return 1
|
|
17
19
|
|
|
18
|
-
if [[ -z "$filename" ]]; then
|
|
20
|
+
if [[ -z "$filename" ]] && [[ "$public" == 0 ]]; then
|
|
19
21
|
bluer_objects_mlflow_log_run $object_name
|
|
20
22
|
fi
|
|
21
23
|
}
|
bluer_objects/__init__.py
CHANGED
bluer_objects/config.env
CHANGED
bluer_objects/env.py
CHANGED
|
@@ -36,6 +36,7 @@ DUMMY_TEXT = "This is some dummy text. This is some dummy text. This is some dum
|
|
|
36
36
|
ABCLI_MLFLOW_EXPERIMENT_PREFIX = get_env("ABCLI_MLFLOW_EXPERIMENT_PREFIX")
|
|
37
37
|
|
|
38
38
|
S3_STORAGE_BUCKET = get_env("S3_STORAGE_BUCKET")
|
|
39
|
+
S3_PUBLIC_STORAGE_BUCKET = get_env("S3_PUBLIC_STORAGE_BUCKET")
|
|
39
40
|
|
|
40
41
|
S3_STORAGE_ENDPOINT_URL = get_env("S3_STORAGE_ENDPOINT_URL")
|
|
41
42
|
S3_STORAGE_AWS_ACCESS_KEY_ID = get_env("S3_STORAGE_AWS_ACCESS_KEY_ID")
|
bluer_objects/help/upload.py
CHANGED
bluer_objects/storage/WebDAV.py
CHANGED
|
@@ -86,8 +86,13 @@ class WebDAVInterface(StorageInterface):
|
|
|
86
86
|
self,
|
|
87
87
|
object_name: str,
|
|
88
88
|
filename: str = "",
|
|
89
|
+
public: bool = False,
|
|
89
90
|
log: bool = True,
|
|
90
91
|
) -> bool:
|
|
92
|
+
if public:
|
|
93
|
+
logger.error("public not supported.")
|
|
94
|
+
return False
|
|
95
|
+
|
|
91
96
|
if filename:
|
|
92
97
|
remote_dir = "/".join([object_name] + filename.split("/")[:-1])
|
|
93
98
|
if not self.mkdir(
|
|
@@ -111,5 +116,6 @@ class WebDAVInterface(StorageInterface):
|
|
|
111
116
|
return super().upload(
|
|
112
117
|
object_name=object_name,
|
|
113
118
|
filename=filename,
|
|
119
|
+
public=public,
|
|
114
120
|
log=log,
|
|
115
121
|
)
|
|
@@ -278,8 +278,13 @@ class WebDAVRequestInterface(StorageInterface):
|
|
|
278
278
|
self,
|
|
279
279
|
object_name: str,
|
|
280
280
|
filename: str = "",
|
|
281
|
+
public: bool = False,
|
|
281
282
|
log: bool = True,
|
|
282
283
|
) -> bool:
|
|
284
|
+
if public:
|
|
285
|
+
logger.error("public not supported.")
|
|
286
|
+
return False
|
|
287
|
+
|
|
283
288
|
if filename:
|
|
284
289
|
if not self.mkdir(
|
|
285
290
|
path="{}/{}".format(
|
|
@@ -315,6 +320,7 @@ class WebDAVRequestInterface(StorageInterface):
|
|
|
315
320
|
return super().upload(
|
|
316
321
|
object_name=object_name,
|
|
317
322
|
filename=filename,
|
|
323
|
+
public=public,
|
|
318
324
|
log=log,
|
|
319
325
|
)
|
|
320
326
|
|
|
@@ -339,6 +345,7 @@ class WebDAVRequestInterface(StorageInterface):
|
|
|
339
345
|
if not self.upload(
|
|
340
346
|
object_name=object_name,
|
|
341
347
|
filename=filename_.split(object_path, 1)[1],
|
|
348
|
+
public=public,
|
|
342
349
|
log=log,
|
|
343
350
|
):
|
|
344
351
|
return False
|
|
@@ -125,8 +125,13 @@ class WebDAVzipInterface(StorageInterface):
|
|
|
125
125
|
self,
|
|
126
126
|
object_name: str,
|
|
127
127
|
filename: str = "",
|
|
128
|
+
public: bool = False,
|
|
128
129
|
log: bool = True,
|
|
129
130
|
) -> bool:
|
|
131
|
+
if public:
|
|
132
|
+
logger.error("public not supported.")
|
|
133
|
+
return False
|
|
134
|
+
|
|
130
135
|
object_path = objects.object_path(object_name=object_name)
|
|
131
136
|
|
|
132
137
|
if not zip(
|
|
@@ -149,5 +154,6 @@ class WebDAVzipInterface(StorageInterface):
|
|
|
149
154
|
|
|
150
155
|
return super().upload(
|
|
151
156
|
object_name=object_name,
|
|
157
|
+
public=public,
|
|
152
158
|
log=log,
|
|
153
159
|
)
|
|
@@ -24,6 +24,12 @@ parser.add_argument(
|
|
|
24
24
|
type=str,
|
|
25
25
|
default="",
|
|
26
26
|
)
|
|
27
|
+
parser.add_argument(
|
|
28
|
+
"--public",
|
|
29
|
+
type=int,
|
|
30
|
+
default=0,
|
|
31
|
+
help="0 | 1",
|
|
32
|
+
)
|
|
27
33
|
parser.add_argument(
|
|
28
34
|
"--where",
|
|
29
35
|
type=str,
|
|
@@ -80,6 +86,7 @@ elif args.task == "upload":
|
|
|
80
86
|
success = storage.upload(
|
|
81
87
|
object_name=args.object_name,
|
|
82
88
|
filename=args.filename,
|
|
89
|
+
public=args.public == 1,
|
|
83
90
|
)
|
|
84
91
|
else:
|
|
85
92
|
success = None
|
bluer_objects/storage/base.py
CHANGED
|
@@ -66,14 +66,16 @@ class StorageInterface:
|
|
|
66
66
|
self,
|
|
67
67
|
object_name: str,
|
|
68
68
|
filename: str = "",
|
|
69
|
+
public: bool = False,
|
|
69
70
|
log: bool = True,
|
|
70
71
|
) -> bool:
|
|
71
72
|
if log:
|
|
72
73
|
logger.info(
|
|
73
|
-
"{}.upload {}{}".format(
|
|
74
|
+
"{}.upload {}{}{}".format(
|
|
74
75
|
self.__class__.__name__,
|
|
75
76
|
object_name,
|
|
76
77
|
f"/{filename}" if filename else "",
|
|
78
|
+
" [public]" if public else "",
|
|
77
79
|
)
|
|
78
80
|
)
|
|
79
81
|
|
bluer_objects/storage/s3.py
CHANGED
|
@@ -225,6 +225,7 @@ class S3Interface(StorageInterface):
|
|
|
225
225
|
self,
|
|
226
226
|
object_name: str,
|
|
227
227
|
filename: str = "",
|
|
228
|
+
public: bool = False,
|
|
228
229
|
log: bool = True,
|
|
229
230
|
) -> bool:
|
|
230
231
|
if filename:
|
|
@@ -233,6 +234,10 @@ class S3Interface(StorageInterface):
|
|
|
233
234
|
filename=filename,
|
|
234
235
|
)
|
|
235
236
|
|
|
237
|
+
bucket_name = (
|
|
238
|
+
env.S3_PUBLIC_STORAGE_BUCKET if public else env.S3_STORAGE_BUCKET
|
|
239
|
+
)
|
|
240
|
+
|
|
236
241
|
try:
|
|
237
242
|
s3_resource = boto3.resource(
|
|
238
243
|
"s3",
|
|
@@ -241,11 +246,11 @@ class S3Interface(StorageInterface):
|
|
|
241
246
|
aws_secret_access_key=env.S3_STORAGE_AWS_SECRET_ACCESS_KEY,
|
|
242
247
|
)
|
|
243
248
|
|
|
244
|
-
bucket = s3_resource.Bucket(
|
|
249
|
+
bucket = s3_resource.Bucket(bucket_name)
|
|
245
250
|
|
|
246
251
|
with open(local_path, "rb") as fp:
|
|
247
252
|
bucket.put_object(
|
|
248
|
-
ACL="private",
|
|
253
|
+
ACL="public-read" if public else "private",
|
|
249
254
|
Body=fp,
|
|
250
255
|
Key=f"{object_name}/{filename}",
|
|
251
256
|
)
|
|
@@ -253,9 +258,21 @@ class S3Interface(StorageInterface):
|
|
|
253
258
|
logger.error(e)
|
|
254
259
|
return False
|
|
255
260
|
|
|
261
|
+
if public:
|
|
262
|
+
|
|
263
|
+
logger.info(
|
|
264
|
+
"🔗 https://{}.{}/{}/{}".format(
|
|
265
|
+
bucket_name,
|
|
266
|
+
env.S3_STORAGE_ENDPOINT_URL.split("https://", 1)[1],
|
|
267
|
+
object_name,
|
|
268
|
+
filename,
|
|
269
|
+
)
|
|
270
|
+
)
|
|
271
|
+
|
|
256
272
|
return super().upload(
|
|
257
273
|
object_name=object_name,
|
|
258
274
|
filename=filename,
|
|
275
|
+
public=public,
|
|
259
276
|
log=log,
|
|
260
277
|
)
|
|
261
278
|
|
|
@@ -277,6 +294,7 @@ class S3Interface(StorageInterface):
|
|
|
277
294
|
if not self.upload(
|
|
278
295
|
object_name=object_name,
|
|
279
296
|
filename=filename_.split(object_path, 1)[1],
|
|
297
|
+
public=public,
|
|
280
298
|
log=log,
|
|
281
299
|
):
|
|
282
300
|
return False
|
bluer_objects/tests/test_env.py
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: bluer_objects
|
|
3
|
-
Version: 6.
|
|
3
|
+
Version: 6.181.1
|
|
4
4
|
Summary: 🌀 Object management in Bash.
|
|
5
5
|
Home-page: https://github.com/kamangir/bluer-objects
|
|
6
6
|
Author: Arash Abadpour (Kamangir)
|
|
@@ -64,6 +64,6 @@ pip install bluer-objects
|
|
|
64
64
|
|
|
65
65
|
[](https://github.com/kamangir/bluer-objects/actions/workflows/pylint.yml) [](https://github.com/kamangir/bluer-objects/actions/workflows/pytest.yml) [](https://github.com/kamangir/bluer-objects/actions/workflows/bashtest.yml) [](https://pypi.org/project/bluer-objects/) [](https://pypistats.org/packages/bluer-objects)
|
|
66
66
|
|
|
67
|
-
built by 🌀 [`bluer README`](https://github.com/kamangir/bluer-objects/tree/main/bluer_objects/README), based on 🌀 [`bluer_objects-6.
|
|
67
|
+
built by 🌀 [`bluer README`](https://github.com/kamangir/bluer-objects/tree/main/bluer_objects/README), based on 🌀 [`bluer_objects-6.181.1`](https://github.com/kamangir/bluer-objects).
|
|
68
68
|
|
|
69
69
|
built by 🌀 [`blueness-3.118.1`](https://github.com/kamangir/blueness).
|
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
bluer_objects/__init__.py,sha256=
|
|
1
|
+
bluer_objects/__init__.py,sha256=ZS-H8ZaUb_ms3k0y-QCmwt8bOPXKu7xlp2mbW8xNmpk,315
|
|
2
2
|
bluer_objects/__main__.py,sha256=Yqfov833_hJuRne19WrGhT5DWAPtdffpoMxeSXS7EGw,359
|
|
3
|
-
bluer_objects/config.env,sha256=
|
|
4
|
-
bluer_objects/env.py,sha256=
|
|
3
|
+
bluer_objects/config.env,sha256=RjcpnbKfRqNyGLRB4z7M_OG9z2pOM032ck__53JqXqo,216
|
|
4
|
+
bluer_objects/env.py,sha256=iw4QvaImqnavlsHwfkUScNHc7afDEJQKJSsHTtVJE78,2019
|
|
5
5
|
bluer_objects/markdown.py,sha256=PhAwCTHIisO9qOpKHeb63U5oD9Zi8LnIQKTx_OWS4wE,938
|
|
6
6
|
bluer_objects/objects.py,sha256=EYzA1vKngY2c_gdMKnUfrKVUcf-5wpFKgBFaVJA4cLE,1626
|
|
7
7
|
bluer_objects/path.py,sha256=9uspZqObI29NerVDF30uILLaouDtloASh0Mywyq2_ew,3946
|
|
@@ -24,7 +24,7 @@ bluer_objects/.abcli/mlflow.sh,sha256=7ylwHrQas-QbAJ8SfDJiN3zbuU6ifLUBEAhPRw38Hp
|
|
|
24
24
|
bluer_objects/.abcli/object.sh,sha256=Zh2ZMFqBSIOHwwwLegCMxJRfaYCbPp1EJMT3LvcFzhE,739
|
|
25
25
|
bluer_objects/.abcli/select.sh,sha256=CVcqVRN6bMLtEo0SptZS_QGY90_lT1Su71DlcVyddXo,878
|
|
26
26
|
bluer_objects/.abcli/storage.sh,sha256=iYHxdXJI9sGR-WKxDuYKOB06FccSQ0G0-uZn9UJQGnc,321
|
|
27
|
-
bluer_objects/.abcli/upload.sh,sha256=
|
|
27
|
+
bluer_objects/.abcli/upload.sh,sha256=IbT786rA6nWuQurhGOFOiJeH_ZqVpnhvrARA1VJl9MU,640
|
|
28
28
|
bluer_objects/.abcli/metadata/get.sh,sha256=6W9x0akZwwozTyOlKCW_0MndYVUAL4v1HSUPxTAsfKA,835
|
|
29
29
|
bluer_objects/.abcli/metadata/post.sh,sha256=UdvZNuRu6_NcyRVvDMFZ9GEwOm3K8rsNqM0FFr9LskA,570
|
|
30
30
|
bluer_objects/.abcli/mlflow/browse.sh,sha256=jPHAKLgG7yDLCdSAW5acVmCOcOltAkZQ8FrttrX401s,1166
|
|
@@ -63,7 +63,8 @@ bluer_objects/.abcli/tests/mlflow_lock.sh,sha256=TJwp6HbVUOT1HqRfXPS8_zpKAL7-mBe
|
|
|
63
63
|
bluer_objects/.abcli/tests/mlflow_logging.sh,sha256=TVzHhk9qRthpP2xdKwu3LwK00S77GqH50io3oVyS2UE,305
|
|
64
64
|
bluer_objects/.abcli/tests/mlflow_tags.sh,sha256=pX4sEK_z2Vrb7a6Bq4qWurFVPZkvjpS10K4MLx3mf64,811
|
|
65
65
|
bluer_objects/.abcli/tests/mlflow_test.sh,sha256=7MXxYq2GgD2MEJbQlpx80qLT2HaaVn_PFFMpSA_hWA4,125
|
|
66
|
-
bluer_objects/.abcli/tests/
|
|
66
|
+
bluer_objects/.abcli/tests/storage_public_upload.sh,sha256=3S7YJQ-mbPcVtG384PRxEGP7xGLJgvvV-CtV4hgz2I8,456
|
|
67
|
+
bluer_objects/.abcli/tests/storage_upload_download.sh,sha256=tXjrHuFtmogC9Pf4Q8aTU1Sx1C653GOcy_jIsecelMY,1346
|
|
67
68
|
bluer_objects/.abcli/tests/version.sh,sha256=k-lXozSjyFgFR58cTzUYla0Ef-upx3sSK641zI5ynfE,169
|
|
68
69
|
bluer_objects/README/__init__.py,sha256=JwxdTVAK3LeUaw7rMJujOFIXZA59HaLCtxpsR1C-vpo,1311
|
|
69
70
|
bluer_objects/README/functions.py,sha256=IriuSysrApSTEgOZHqq32-eyks5v5Tn-KvmwYQUIloc,10752
|
|
@@ -91,7 +92,7 @@ bluer_objects/help/gif.py,sha256=gKV6vNT4bEC2Ch3QIb3Yc5DqzAH_UvAVCsuvzXeF1Sc,564
|
|
|
91
92
|
bluer_objects/help/host.py,sha256=4t4yrPGjTbnFtODcuBjfIzpA5pmmvc5s4QrjIqPPVsM,988
|
|
92
93
|
bluer_objects/help/ls.py,sha256=acvRLDxjJOzQ1a9ZQ4Mn9aBZ8Vf17IDHcAxC2O3R33Y,627
|
|
93
94
|
bluer_objects/help/metadata.py,sha256=fk22NasBcZU1ffY4fu6AxrCzMQtTI28p_ghaSVRrrPM,2811
|
|
94
|
-
bluer_objects/help/upload.py,sha256=
|
|
95
|
+
bluer_objects/help/upload.py,sha256=tXAdVhy0FZfF5b4cAEgaYlLQ8_cnQ656um8QioKMV_o,456
|
|
95
96
|
bluer_objects/help/mlflow/__init__.py,sha256=fvnGg8l24oGWKd7lbVm32GHyrE3eBlholj4RFrjFNuw,4427
|
|
96
97
|
bluer_objects/help/mlflow/cache.py,sha256=O8O1oaiq1e1z2HCi8fRe4hjSNimzvCaCAIu-u2GDHkE,704
|
|
97
98
|
bluer_objects/help/mlflow/lock.py,sha256=REdB4LmlHu2_6SF1nDA50KBbYtNIKRDbYH7KduUnuEg,848
|
|
@@ -118,19 +119,19 @@ bluer_objects/mlflow/testing.py,sha256=cJH5Ki02fJN_Xos1j9yvwQChXvMkOa9i12vtDKmkb
|
|
|
118
119
|
bluer_objects/mlflow/lock/__init__.py,sha256=AbpHGcgLb-kRsJGnwFEktk7uzpZOCcBY74-YBdrKVGs,1
|
|
119
120
|
bluer_objects/mlflow/lock/__main__.py,sha256=xF_xq2UqAsEohSOHjxaFXaw9KopOEDg6LRDM5a4VAPQ,1138
|
|
120
121
|
bluer_objects/mlflow/lock/functions.py,sha256=MOslqblNAOsRvILzLF4q6m2EAwCk4f4zEWQpsy8lVnM,3045
|
|
121
|
-
bluer_objects/storage/WebDAV.py,sha256=
|
|
122
|
-
bluer_objects/storage/WebDAVrequest.py,sha256=
|
|
123
|
-
bluer_objects/storage/WebDAVzip.py,sha256=
|
|
124
|
-
bluer_objects/storage/__init__.py,sha256=
|
|
125
|
-
bluer_objects/storage/__main__.py,sha256=
|
|
126
|
-
bluer_objects/storage/base.py,sha256=
|
|
127
|
-
bluer_objects/storage/s3.py,sha256=
|
|
122
|
+
bluer_objects/storage/WebDAV.py,sha256=TrMroPaCx_ploCol4s3604qdl-4HjOYj906JJ7oRpv8,3074
|
|
123
|
+
bluer_objects/storage/WebDAVrequest.py,sha256=tuMXWWpFcOkwf-W3YTsuJ5vQYJPFDOuEzBVRHjcSsdc,10027
|
|
124
|
+
bluer_objects/storage/WebDAVzip.py,sha256=Tn-g9wjK6qHHIEO4-N_xBEZ4H8Q7dIh1Iv5banQw-c4,4024
|
|
125
|
+
bluer_objects/storage/__init__.py,sha256=Sz9KJzb2p6MbAvHMZEhQIpo2UVOCi1OCSO095uwU3JI,1695
|
|
126
|
+
bluer_objects/storage/__main__.py,sha256=yfWoUlpF_HssujOepf6J60G1Ohm0eccq-OQkhLjnWyY,1895
|
|
127
|
+
bluer_objects/storage/base.py,sha256=E4u8yuRWK_-3i6aa4u2tFZshj74PWPf5AgGGgK0mmTg,2032
|
|
128
|
+
bluer_objects/storage/s3.py,sha256=NOAkScgFIWx5awi9Ve41axFi5TvW_IPzz232Cf9p7wE,8912
|
|
128
129
|
bluer_objects/testing/__init__.py,sha256=DWY5ZtvCnHG_t9BDiqy_ArLOZi-nlyAtPVMLA1PPAMU,62
|
|
129
130
|
bluer_objects/testing/__main__.py,sha256=hhJV9qn0V_8FxzNDcoHCHr4A7zf9UudnNGJCAPkTBGU,750
|
|
130
131
|
bluer_objects/testing/functions.py,sha256=AXAfzWLcEPkbSYTehdahshjKJ45C4IJkRs_TgrHOntc,1355
|
|
131
132
|
bluer_objects/tests/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
132
133
|
bluer_objects/tests/test_README.py,sha256=5D4UV8VcjbeAPThsYVynYtVFuP8gwMAhIjEWuOQZsWs,89
|
|
133
|
-
bluer_objects/tests/test_env.py,sha256=
|
|
134
|
+
bluer_objects/tests/test_env.py,sha256=vjaNwfsLodw8jpTEKYBsjKwpxcwcNOtsWHqS4iyH4oQ,1090
|
|
134
135
|
bluer_objects/tests/test_file_download.py,sha256=1_adHYqgSifkdP-I7TQVW0t8MLCujQ61fvRbcrSkcmg,512
|
|
135
136
|
bluer_objects/tests/test_file_load_save.py,sha256=unqxfiqba6RVhMS95AtHZWsT7Q097jBOKdckAT9PyFU,2390
|
|
136
137
|
bluer_objects/tests/test_file_load_save_text.py,sha256=3XnBGlv3KZvheHY-RlX1Su6LOBkkn57pkf9_dXR81r8,1017
|
|
@@ -156,8 +157,8 @@ bluer_objects/tests/test_storage_webdav_request.py,sha256=h2b8PeIx0-hQ2d6PmQcJZy
|
|
|
156
157
|
bluer_objects/tests/test_storage_webdav_zip.py,sha256=C19qxhkcHyTwVFzW35vL85SOcXJPkqXXaWUNll0Uyqc,1017
|
|
157
158
|
bluer_objects/tests/test_testing.py,sha256=d2NH435yqJBl9wmfMqGGd-f0Y0jsL2QhHUXkty9AwPA,235
|
|
158
159
|
bluer_objects/tests/test_version.py,sha256=Lyf3PMcA22e17BNRk_2VgPrtao6dWEgVoXo68Uds8SE,75
|
|
159
|
-
bluer_objects-6.
|
|
160
|
-
bluer_objects-6.
|
|
161
|
-
bluer_objects-6.
|
|
162
|
-
bluer_objects-6.
|
|
163
|
-
bluer_objects-6.
|
|
160
|
+
bluer_objects-6.181.1.dist-info/licenses/LICENSE,sha256=ogEPNDSH0_dhiv_lT3ifVIdgIzHAqNA_SemnxUfPBJk,7048
|
|
161
|
+
bluer_objects-6.181.1.dist-info/METADATA,sha256=1Qg1tbF7rFdTgwJ8ezbLyU-EtbWNukcWILBQV5QthQ4,3678
|
|
162
|
+
bluer_objects-6.181.1.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
|
|
163
|
+
bluer_objects-6.181.1.dist-info/top_level.txt,sha256=RX2TpddbnRkurda3G_pAdyeTztP2IhhRPx949GlEvQo,14
|
|
164
|
+
bluer_objects-6.181.1.dist-info/RECORD,,
|
|
File without changes
|
|
File without changes
|
|
File without changes
|