edgegrid-python 2.0.0__tar.gz → 2.0.2__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 (25) hide show
  1. {edgegrid_python-2.0.0 → edgegrid-python-2.0.2}/LICENSE +2 -2
  2. {edgegrid_python-2.0.0 → edgegrid-python-2.0.2}/MANIFEST.in +1 -0
  3. {edgegrid_python-2.0.0/edgegrid_python.egg-info → edgegrid-python-2.0.2}/PKG-INFO +10 -16
  4. {edgegrid_python-2.0.0 → edgegrid-python-2.0.2}/README.md +5 -5
  5. {edgegrid_python-2.0.0 → edgegrid-python-2.0.2}/akamai/edgegrid/__init__.py +2 -2
  6. edgegrid-python-2.0.2/akamai/edgegrid/test/testcases.json +239 -0
  7. {edgegrid_python-2.0.0 → edgegrid-python-2.0.2/edgegrid_python.egg-info}/PKG-INFO +10 -16
  8. {edgegrid_python-2.0.0 → edgegrid-python-2.0.2}/edgegrid_python.egg-info/SOURCES.txt +1 -0
  9. {edgegrid_python-2.0.0 → edgegrid-python-2.0.2}/edgegrid_python.egg-info/requires.txt +0 -4
  10. edgegrid-python-2.0.2/requirements.txt +20 -0
  11. {edgegrid_python-2.0.0 → edgegrid-python-2.0.2}/setup.py +3 -7
  12. edgegrid_python-2.0.0/requirements.txt +0 -38
  13. {edgegrid_python-2.0.0 → edgegrid-python-2.0.2}/akamai/__init__.py +0 -0
  14. {edgegrid_python-2.0.0 → edgegrid-python-2.0.2}/akamai/edgegrid/edgegrid.py +0 -0
  15. {edgegrid_python-2.0.0 → edgegrid-python-2.0.2}/akamai/edgegrid/edgerc.py +0 -0
  16. {edgegrid_python-2.0.0 → edgegrid-python-2.0.2}/akamai/edgegrid/test/__init__.py +0 -0
  17. {edgegrid_python-2.0.0 → edgegrid-python-2.0.2}/akamai/edgegrid/test/conftest.py +0 -0
  18. {edgegrid_python-2.0.0 → edgegrid-python-2.0.2}/akamai/edgegrid/test/edgerc_that_doesnt_parse +0 -0
  19. {edgegrid_python-2.0.0 → edgegrid-python-2.0.2}/akamai/edgegrid/test/sample_edgerc +0 -0
  20. {edgegrid_python-2.0.0 → edgegrid-python-2.0.2}/akamai/edgegrid/test/test_edgegrid.py +0 -0
  21. {edgegrid_python-2.0.0 → edgegrid-python-2.0.2}/akamai/edgegrid/test/testdata.json +0 -0
  22. {edgegrid_python-2.0.0 → edgegrid-python-2.0.2}/edgegrid_python.egg-info/dependency_links.txt +0 -0
  23. {edgegrid_python-2.0.0 → edgegrid-python-2.0.2}/edgegrid_python.egg-info/namespace_packages.txt +0 -0
  24. {edgegrid_python-2.0.0 → edgegrid-python-2.0.2}/edgegrid_python.egg-info/top_level.txt +0 -0
  25. {edgegrid_python-2.0.0 → edgegrid-python-2.0.2}/setup.cfg +0 -0
@@ -176,10 +176,10 @@ recommend that a file or class name and description of purpose be included on
176
176
  the same "printed page" as the copyright notice for easier identification within
177
177
  third-party archives.
178
178
 
179
- Copyright 2024 Akamai Technologies, Inc. All rights reserved.
179
+ Copyright 2025 Akamai Technologies, Inc. All rights reserved.
180
180
 
181
181
  Licensed under the Apache License, Version 2.0 (the "License");
182
- you may not use this file except in compliance with the License.
182
+ you may not use these files except in compliance with the License.
183
183
  You may obtain a copy of the License at
184
184
 
185
185
  http://www.apache.org/licenses/LICENSE-2.0
@@ -1,6 +1,7 @@
1
1
  include README.rst
2
2
  include LICENSE
3
3
  include requirements.txt
4
+ include akamai/edgegrid/test/testcases.json
4
5
  include akamai/edgegrid/test/testdata.json
5
6
  include akamai/edgegrid/test/sample_edgerc
6
7
  include akamai/edgegrid/test/edgerc_that_doesnt_parse
@@ -1,24 +1,16 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: edgegrid-python
3
- Version: 2.0.0
3
+ Version: 2.0.2
4
4
  Summary: {OPEN} client authentication protocol for python-requests
5
5
  Home-page: https://github.com/akamai/AkamaiOPEN-edgegrid-python
6
6
  License: Apache 2.0
7
+ Platform: UNKNOWN
7
8
  Classifier: License :: OSI Approved :: Apache Software License
8
9
  Classifier: Programming Language :: Python :: 3
9
10
  Requires-Python: >=3.9
10
11
  Description-Content-Type: text/markdown
11
- License-File: LICENSE
12
- Requires-Dist: requests>=2.24.0
13
- Requires-Dist: requests_toolbelt>=0.9.1
14
- Requires-Dist: pyOpenSSL>=19.1.0
15
- Requires-Dist: ndg-httpsclient>=0.5.1
16
- Requires-Dist: pyasn1>=0.4.8
17
- Requires-Dist: urllib3>=1.25.10
18
12
  Provides-Extra: dev
19
- Requires-Dist: pylint>=2.7.0; extra == "dev"
20
- Requires-Dist: pytest>=6.1.0; extra == "dev"
21
- Requires-Dist: pytest-cov>=2.12.1; extra == "dev"
13
+ License-File: LICENSE
22
14
 
23
15
  # EdgeGrid for Python
24
16
 
@@ -47,9 +39,9 @@ pip install edgegrid-python
47
39
  We provide authentication credentials through an API client. Requests to the API are signed with a timestamp and are executed immediately.
48
40
 
49
41
  1. [Create authentication credentials](https://techdocs.akamai.com/developer/docs/set-up-authentication-credentials).
50
-
51
- 2. Place your credentials in an EdgeGrid resource file, `.edgerc`, under a heading of `[default]` at your local home directory or the home directory of a web-server user.
52
-
42
+
43
+ 2. Place your credentials in an EdgeGrid resource file, `.edgerc`, under a heading of `[default]` at your local home directory.
44
+
53
45
  ```
54
46
  [default]
55
47
  client_secret = C113nt53KR3TN6N90yVuAgICxIRwsObLi0E67/N8eRN=
@@ -297,8 +289,10 @@ To report an issue or make a suggestion, create a new [GitHub issue](https://git
297
289
 
298
290
  ## License
299
291
 
300
- Copyright 2024 Akamai Technologies, Inc. All rights reserved.
292
+ Copyright 2025 Akamai Technologies, Inc. All rights reserved.
301
293
 
302
- Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0.
294
+ Licensed under the Apache License, Version 2.0 (the "License"); you may not use these files except in compliance with the License. You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0.
303
295
 
304
296
  Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.
297
+
298
+
@@ -25,9 +25,9 @@ pip install edgegrid-python
25
25
  We provide authentication credentials through an API client. Requests to the API are signed with a timestamp and are executed immediately.
26
26
 
27
27
  1. [Create authentication credentials](https://techdocs.akamai.com/developer/docs/set-up-authentication-credentials).
28
-
29
- 2. Place your credentials in an EdgeGrid resource file, `.edgerc`, under a heading of `[default]` at your local home directory or the home directory of a web-server user.
30
-
28
+
29
+ 2. Place your credentials in an EdgeGrid resource file, `.edgerc`, under a heading of `[default]` at your local home directory.
30
+
31
31
  ```
32
32
  [default]
33
33
  client_secret = C113nt53KR3TN6N90yVuAgICxIRwsObLi0E67/N8eRN=
@@ -275,8 +275,8 @@ To report an issue or make a suggestion, create a new [GitHub issue](https://git
275
275
 
276
276
  ## License
277
277
 
278
- Copyright 2024 Akamai Technologies, Inc. All rights reserved.
278
+ Copyright 2025 Akamai Technologies, Inc. All rights reserved.
279
279
 
280
- Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0.
280
+ Licensed under the Apache License, Version 2.0 (the "License"); you may not use these files except in compliance with the License. You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0.
281
281
 
282
282
  Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.
@@ -36,6 +36,6 @@ from .edgerc import EdgeRc
36
36
  __all__ = ['EdgeGridAuth', 'EdgeRc']
37
37
 
38
38
  __title__ = 'edgegrid-python'
39
- __version__ = '2.0.0'
39
+ __version__ = '2.0.2'
40
40
  __license__ = 'Apache 2.0'
41
- __copyright__ = 'Copyright 2024 Akamai Technologies'
41
+ __copyright__ = 'Copyright 2025 Akamai Technologies'
@@ -0,0 +1,239 @@
1
+ [
2
+ {
3
+ "testName": "simple GET",
4
+ "request": {
5
+ "method": "GET",
6
+ "path": "/",
7
+ "headers": [
8
+ {
9
+ "Host": "akaa-baseurl-xxxxxxxxxxx-xxxxxxxxxxxxx.luna.akamaiapis.net"
10
+ }
11
+ ]
12
+ },
13
+ "expectedAuthorization": "EG1-HMAC-SHA256 client_token=akab-client-token-xxx-xxxxxxxxxxxxxxxx;access_token=akab-access-token-xxx-xxxxxxxxxxxxxxxx;timestamp=20140321T19:34:21+0000;nonce=nonce-xx-xxxx-xxxx-xxxx-xxxxxxxxxxxx;signature=tL+y4hxyHxgWVD30X3pWnGKHcPzmrIF+LThiAOhMxYU=",
14
+ "expectedDataToSign": "GET\thttps\takaa-baseurl-xxxxxxxxxxx-xxxxxxxxxxxxx.luna.akamaiapis.net\t/\t\t\t"
15
+ },
16
+ {
17
+ "testName": "GET with querystring",
18
+ "request": {
19
+ "method": "GET",
20
+ "path": "/testapi/v1/t1?p1=1&p2=2",
21
+ "headers": [
22
+ {
23
+ "Host": "akaa-baseurl-xxxxxxxxxxx-xxxxxxxxxxxxx.luna.akamaiapis.net"
24
+ }
25
+ ]
26
+ },
27
+ "expectedAuthorization": "EG1-HMAC-SHA256 client_token=akab-client-token-xxx-xxxxxxxxxxxxxxxx;access_token=akab-access-token-xxx-xxxxxxxxxxxxxxxx;timestamp=20140321T19:34:21+0000;nonce=nonce-xx-xxxx-xxxx-xxxx-xxxxxxxxxxxx;signature=hKDH1UlnQySSHjvIcZpDMbQHihTQ0XyVAKZaApabdeA=",
28
+ "expectedDataToSign": "GET\thttps\takaa-baseurl-xxxxxxxxxxx-xxxxxxxxxxxxx.luna.akamaiapis.net\t/testapi/v1/t1?p1=1&p2=2\t\t\t"
29
+ },
30
+ {
31
+ "testName": "POST inside limit",
32
+ "request": {
33
+ "method": "POST",
34
+ "path": "/testapi/v1/t3",
35
+ "data": "datadatadatadatadatadatadatadata",
36
+ "headers": [
37
+ {
38
+ "Host": "akaa-baseurl-xxxxxxxxxxx-xxxxxxxxxxxxx.luna.akamaiapis.net"
39
+ }
40
+ ]
41
+ },
42
+ "expectedAuthorization": "EG1-HMAC-SHA256 client_token=akab-client-token-xxx-xxxxxxxxxxxxxxxx;access_token=akab-access-token-xxx-xxxxxxxxxxxxxxxx;timestamp=20140321T19:34:21+0000;nonce=nonce-xx-xxxx-xxxx-xxxx-xxxxxxxxxxxx;signature=hXm4iCxtpN22m4cbZb4lVLW5rhX8Ca82vCFqXzSTPe4=",
43
+ "expectedDataToSign": "POST\thttps\takaa-baseurl-xxxxxxxxxxx-xxxxxxxxxxxxx.luna.akamaiapis.net\t/testapi/v1/t3\t\tfDimoYqXOLntG3If/Z0K2aS9I19Pkv9P5OMCoL8lY0w=\t"
44
+ },
45
+ {
46
+ "testName": "POST too large",
47
+ "request": {
48
+ "method": "POST",
49
+ "path": "/testapi/v1/t3",
50
+ "data": "ddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd",
51
+ "headers": [
52
+ {
53
+ "Host": "akaa-baseurl-xxxxxxxxxxx-xxxxxxxxxxxxx.luna.akamaiapis.net"
54
+ }
55
+ ]
56
+ },
57
+ "expectedAuthorization": "EG1-HMAC-SHA256 client_token=akab-client-token-xxx-xxxxxxxxxxxxxxxx;access_token=akab-access-token-xxx-xxxxxxxxxxxxxxxx;timestamp=20140321T19:34:21+0000;nonce=nonce-xx-xxxx-xxxx-xxxx-xxxxxxxxxxxx;signature=6Q6PiTipLae6n4GsSIDTCJ54bEbHUBp+4MUXrbQCBoY=",
58
+ "expectedDataToSign": "POST\thttps\takaa-baseurl-xxxxxxxxxxx-xxxxxxxxxxxxx.luna.akamaiapis.net\t/testapi/v1/t3\t\tiysZKJ78BqF0NvDrpv9Hc3pJBWC5f5apR4qUK/Qfo5k=\t"
59
+ },
60
+ {
61
+ "testName": "POST length equals max_body",
62
+ "request": {
63
+ "method": "POST",
64
+ "path": "/testapi/v1/t3",
65
+ "data": "dddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd",
66
+ "headers": [
67
+ {
68
+ "Host": "akaa-baseurl-xxxxxxxxxxx-xxxxxxxxxxxxx.luna.akamaiapis.net"
69
+ }
70
+ ]
71
+ },
72
+ "expectedAuthorization": "EG1-HMAC-SHA256 client_token=akab-client-token-xxx-xxxxxxxxxxxxxxxx;access_token=akab-access-token-xxx-xxxxxxxxxxxxxxxx;timestamp=20140321T19:34:21+0000;nonce=nonce-xx-xxxx-xxxx-xxxx-xxxxxxxxxxxx;signature=6Q6PiTipLae6n4GsSIDTCJ54bEbHUBp+4MUXrbQCBoY=",
73
+ "expectedDataToSign": "POST\thttps\takaa-baseurl-xxxxxxxxxxx-xxxxxxxxxxxxx.luna.akamaiapis.net\t/testapi/v1/t3\t\tiysZKJ78BqF0NvDrpv9Hc3pJBWC5f5apR4qUK/Qfo5k=\t"
74
+ },
75
+ {
76
+ "testName": "POST empty body",
77
+ "request": {
78
+ "method": "POST",
79
+ "path": "/testapi/v1/t6",
80
+ "data": "",
81
+ "headers": [
82
+ {
83
+ "Host": "akaa-baseurl-xxxxxxxxxxx-xxxxxxxxxxxxx.luna.akamaiapis.net"
84
+ }
85
+ ]
86
+ },
87
+ "expectedAuthorization": "EG1-HMAC-SHA256 client_token=akab-client-token-xxx-xxxxxxxxxxxxxxxx;access_token=akab-access-token-xxx-xxxxxxxxxxxxxxxx;timestamp=20140321T19:34:21+0000;nonce=nonce-xx-xxxx-xxxx-xxxx-xxxxxxxxxxxx;signature=1gEDxeQGD5GovIkJJGcBaKnZ+VaPtrc4qBUHixjsPCQ=",
88
+ "expectedDataToSign": "POST\thttps\takaa-baseurl-xxxxxxxxxxx-xxxxxxxxxxxxx.luna.akamaiapis.net\t/testapi/v1/t6\t\t\t"
89
+ },
90
+ {
91
+ "testName": "Simple header signing with GET",
92
+ "request": {
93
+ "method": "GET",
94
+ "path": "/testapi/v1/t4",
95
+ "headers": [
96
+ {
97
+ "Host": "akaa-baseurl-xxxxxxxxxxx-xxxxxxxxxxxxx.luna.akamaiapis.net"
98
+ },
99
+ {
100
+ "X-Test1": "test-simple-header"
101
+ }
102
+ ]
103
+ },
104
+ "expectedAuthorization": "EG1-HMAC-SHA256 client_token=akab-client-token-xxx-xxxxxxxxxxxxxxxx;access_token=akab-access-token-xxx-xxxxxxxxxxxxxxxx;timestamp=20140321T19:34:21+0000;nonce=nonce-xx-xxxx-xxxx-xxxx-xxxxxxxxxxxx;signature=8F9AybcRw+PLxnvT+H0JRkjROrrUgsxJTnRXMzqvcwY=",
105
+ "expectedDataToSign": "GET\thttps\takaa-baseurl-xxxxxxxxxxx-xxxxxxxxxxxxx.luna.akamaiapis.net\t/testapi/v1/t4\tx-test1:test-simple-header\t\t"
106
+ },
107
+ {
108
+ "testName": "Header containing spaces",
109
+ "request": {
110
+ "method": "GET",
111
+ "path": "/testapi/v1/t4",
112
+ "headers": [
113
+ {
114
+ "Host": "akaa-baseurl-xxxxxxxxxxx-xxxxxxxxxxxxx.luna.akamaiapis.net"
115
+ },
116
+ {
117
+ "X-Test1": "\" test-header-with-spaces \""
118
+ }
119
+ ]
120
+ },
121
+ "expectedAuthorization": "EG1-HMAC-SHA256 client_token=akab-client-token-xxx-xxxxxxxxxxxxxxxx;access_token=akab-access-token-xxx-xxxxxxxxxxxxxxxx;timestamp=20140321T19:34:21+0000;nonce=nonce-xx-xxxx-xxxx-xxxx-xxxxxxxxxxxx;signature=ucq2AbjCNtobHfCTuS38fdkl5UDdWHZhQX46fYR8CqI=",
122
+ "expectedDataToSign": "GET\thttps\takaa-baseurl-xxxxxxxxxxx-xxxxxxxxxxxxx.luna.akamaiapis.net\t/testapi/v1/t4\tx-test1:\" test-header-with-spaces \"\t\t"
123
+ },
124
+ {
125
+ "testName": "Header with leading and interior spaces",
126
+ "request": {
127
+ "method": "GET",
128
+ "path": "/testapi/v1/t4",
129
+ "headers": [
130
+ {
131
+ "Host": "akaa-baseurl-xxxxxxxxxxx-xxxxxxxxxxxxx.luna.akamaiapis.net"
132
+ },
133
+ {
134
+ "X-Test1": " first-thing second-thing"
135
+ }
136
+ ]
137
+ },
138
+ "failsWithMessage": "Invalid leading whitespace, reserved character(s), or return character(s) in header value: ' first-thing second-thing'",
139
+ "expectedAuthorization": "EG1-HMAC-SHA256 client_token=akab-client-token-xxx-xxxxxxxxxxxxxxxx;access_token=akab-access-token-xxx-xxxxxxxxxxxxxxxx;timestamp=20140321T19:34:21+0000;nonce=nonce-xx-xxxx-xxxx-xxxx-xxxxxxxxxxxx;signature=WtnneL539UadAAOJwnsXvPqT4Kt6z7HMgBEwAFpt3+c="
140
+ },
141
+ {
142
+ "testName": "Headers out of order",
143
+ "request": {
144
+ "method": "GET",
145
+ "path": "/testapi/v1/t4",
146
+ "headers": [
147
+ {
148
+ "Host": "akaa-baseurl-xxxxxxxxxxx-xxxxxxxxxxxxx.luna.akamaiapis.net"
149
+ },
150
+ {
151
+ "X-Test2": "t2"
152
+ },
153
+ {
154
+ "X-Test1": "t1"
155
+ },
156
+ {
157
+ "X-Test3": "t3"
158
+ }
159
+ ]
160
+ },
161
+ "expectedAuthorization": "EG1-HMAC-SHA256 client_token=akab-client-token-xxx-xxxxxxxxxxxxxxxx;access_token=akab-access-token-xxx-xxxxxxxxxxxxxxxx;timestamp=20140321T19:34:21+0000;nonce=nonce-xx-xxxx-xxxx-xxxx-xxxxxxxxxxxx;signature=Wus73Nx8jOYM+kkBFF2q8D1EATRIMr0WLWwpLBgkBqY=",
162
+ "expectedDataToSign": "GET\thttps\takaa-baseurl-xxxxxxxxxxx-xxxxxxxxxxxxx.luna.akamaiapis.net\t/testapi/v1/t4\tx-test1:t1\tx-test2:t2\tx-test3:t3\t\t"
163
+ },
164
+ {
165
+ "testName": "Extra header",
166
+ "request": {
167
+ "method": "GET",
168
+ "path": "/testapi/v1/t5",
169
+ "headers": [
170
+ {
171
+ "Host": "akaa-baseurl-xxxxxxxxxxx-xxxxxxxxxxxxx.luna.akamaiapis.net"
172
+ },
173
+ {
174
+ "X-Test2": "t2"
175
+ },
176
+ {
177
+ "X-Test1": "t1"
178
+ },
179
+ {
180
+ "X-Test3": "t3"
181
+ },
182
+ {
183
+ "X-Extra": "this won't be included"
184
+ }
185
+ ]
186
+ },
187
+ "expectedAuthorization": "EG1-HMAC-SHA256 client_token=akab-client-token-xxx-xxxxxxxxxxxxxxxx;access_token=akab-access-token-xxx-xxxxxxxxxxxxxxxx;timestamp=20140321T19:34:21+0000;nonce=nonce-xx-xxxx-xxxx-xxxx-xxxxxxxxxxxx;signature=Knd/jc0A5Ghhizjayr0AUUvl2MZjBpS3FDSzvtq4Ixc=",
188
+ "expectedDataToSign": "GET\thttps\takaa-baseurl-xxxxxxxxxxx-xxxxxxxxxxxxx.luna.akamaiapis.net\t/testapi/v1/t5\tx-test1:t1\tx-test2:t2\tx-test3:t3\t\t"
189
+ },
190
+ {
191
+ "testName": "PUT test",
192
+ "request": {
193
+ "method": "PUT",
194
+ "path": "/testapi/v1/t6",
195
+ "data": "PPPPPPPPPPPPPPPPPPPPPPPPPPPPPPP"
196
+ },
197
+ "expectedAuthorization": "EG1-HMAC-SHA256 client_token=akab-client-token-xxx-xxxxxxxxxxxxxxxx;access_token=akab-access-token-xxx-xxxxxxxxxxxxxxxx;timestamp=20140321T19:34:21+0000;nonce=nonce-xx-xxxx-xxxx-xxxx-xxxxxxxxxxxx;signature=GNBWEYSEWOLtu+7dD52da2C39aX/Jchpon3K/AmBqBU=",
198
+ "expectedDataToSign": "PUT\thttps\takaa-baseurl-xxxxxxxxxxx-xxxxxxxxxxxxx.luna.akamaiapis.net\t/testapi/v1/t6\t\t\t"
199
+ },
200
+ {
201
+ "testName": "PATCH test",
202
+ "request": {
203
+ "method": "PATCH",
204
+ "path": "/testapi/v1/t6",
205
+ "data": "PPPPPPPPPPPPPPPPPPPPPPPPPPPPPPP"
206
+ },
207
+ "expectedAuthorization": "EG1-HMAC-SHA256 client_token=akab-client-token-xxx-xxxxxxxxxxxxxxxx;access_token=akab-access-token-xxx-xxxxxxxxxxxxxxxx;timestamp=20140321T19:34:21+0000;nonce=nonce-xx-xxxx-xxxx-xxxx-xxxxxxxxxxxx;signature=JIl05ImY1AOnMtmw+9LKgaFA8mnzsEKabbnHmI8LsQ4=",
208
+ "expectedDataToSign": "PATCH\thttps\takaa-baseurl-xxxxxxxxxxx-xxxxxxxxxxxxx.luna.akamaiapis.net\t/testapi/v1/t6\t\t\t"
209
+ },
210
+ {
211
+ "testName": "GET with query params",
212
+ "request": {
213
+ "method": "GET",
214
+ "path": "/testapi/v1/configs/111?from=12345&limit=200000",
215
+ "headers": [
216
+ {
217
+ "Host": "akaa-baseurl-xxxxxxxxxxx-xxxxxxxxxxxxx.luna.akamaiapis.net"
218
+ }
219
+ ]
220
+ },
221
+ "expectedAuthorization": "EG1-HMAC-SHA256 client_token=akab-client-token-xxx-xxxxxxxxxxxxxxxx;access_token=akab-access-token-xxx-xxxxxxxxxxxxxxxx;timestamp=20140321T19:34:21+0000;nonce=nonce-xx-xxxx-xxxx-xxxx-xxxxxxxxxxxx;signature=XM+hsuSs6nuy/5eDRty1IjtVCAdr8xPFRAZ/b8RXDm8=",
222
+ "expectedDataToSign": "GET\thttps\takaa-baseurl-xxxxxxxxxxx-xxxxxxxxxxxxx.luna.akamaiapis.net\t/testapi/v1/configs/111?from=12345&limit=200000\t\t\t"
223
+ },
224
+ {
225
+ "_comment": "signature must be different here than in 'GET with query params' test",
226
+ "testName": "GET with query params and separator in path",
227
+ "request": {
228
+ "method": "GET",
229
+ "path": "/testapi/v1/configs/111;222;333?from=12345&limit=200000",
230
+ "headers": [
231
+ {
232
+ "Host": "akaa-baseurl-xxxxxxxxxxx-xxxxxxxxxxxxx.luna.akamaiapis.net"
233
+ }
234
+ ]
235
+ },
236
+ "expectedAuthorization": "EG1-HMAC-SHA256 client_token=akab-client-token-xxx-xxxxxxxxxxxxxxxx;access_token=akab-access-token-xxx-xxxxxxxxxxxxxxxx;timestamp=20140321T19:34:21+0000;nonce=nonce-xx-xxxx-xxxx-xxxx-xxxxxxxxxxxx;signature=pmQF7Is2+O4r/mMojPR4yeF58BrempNNoBX5/DT0Fxs=",
237
+ "expectedDataToSign": "GET\thttps\takaa-baseurl-xxxxxxxxxxx-xxxxxxxxxxxxx.luna.akamaiapis.net\t/testapi/v1/configs/111;222;333?from=12345&limit=200000\t\t\t"
238
+ }
239
+ ]
@@ -1,24 +1,16 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: edgegrid-python
3
- Version: 2.0.0
3
+ Version: 2.0.2
4
4
  Summary: {OPEN} client authentication protocol for python-requests
5
5
  Home-page: https://github.com/akamai/AkamaiOPEN-edgegrid-python
6
6
  License: Apache 2.0
7
+ Platform: UNKNOWN
7
8
  Classifier: License :: OSI Approved :: Apache Software License
8
9
  Classifier: Programming Language :: Python :: 3
9
10
  Requires-Python: >=3.9
10
11
  Description-Content-Type: text/markdown
11
- License-File: LICENSE
12
- Requires-Dist: requests>=2.24.0
13
- Requires-Dist: requests_toolbelt>=0.9.1
14
- Requires-Dist: pyOpenSSL>=19.1.0
15
- Requires-Dist: ndg-httpsclient>=0.5.1
16
- Requires-Dist: pyasn1>=0.4.8
17
- Requires-Dist: urllib3>=1.25.10
18
12
  Provides-Extra: dev
19
- Requires-Dist: pylint>=2.7.0; extra == "dev"
20
- Requires-Dist: pytest>=6.1.0; extra == "dev"
21
- Requires-Dist: pytest-cov>=2.12.1; extra == "dev"
13
+ License-File: LICENSE
22
14
 
23
15
  # EdgeGrid for Python
24
16
 
@@ -47,9 +39,9 @@ pip install edgegrid-python
47
39
  We provide authentication credentials through an API client. Requests to the API are signed with a timestamp and are executed immediately.
48
40
 
49
41
  1. [Create authentication credentials](https://techdocs.akamai.com/developer/docs/set-up-authentication-credentials).
50
-
51
- 2. Place your credentials in an EdgeGrid resource file, `.edgerc`, under a heading of `[default]` at your local home directory or the home directory of a web-server user.
52
-
42
+
43
+ 2. Place your credentials in an EdgeGrid resource file, `.edgerc`, under a heading of `[default]` at your local home directory.
44
+
53
45
  ```
54
46
  [default]
55
47
  client_secret = C113nt53KR3TN6N90yVuAgICxIRwsObLi0E67/N8eRN=
@@ -297,8 +289,10 @@ To report an issue or make a suggestion, create a new [GitHub issue](https://git
297
289
 
298
290
  ## License
299
291
 
300
- Copyright 2024 Akamai Technologies, Inc. All rights reserved.
292
+ Copyright 2025 Akamai Technologies, Inc. All rights reserved.
301
293
 
302
- Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0.
294
+ Licensed under the Apache License, Version 2.0 (the "License"); you may not use these files except in compliance with the License. You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0.
303
295
 
304
296
  Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.
297
+
298
+
@@ -12,6 +12,7 @@ akamai/edgegrid/test/conftest.py
12
12
  akamai/edgegrid/test/edgerc_that_doesnt_parse
13
13
  akamai/edgegrid/test/sample_edgerc
14
14
  akamai/edgegrid/test/test_edgegrid.py
15
+ akamai/edgegrid/test/testcases.json
15
16
  akamai/edgegrid/test/testdata.json
16
17
  edgegrid_python.egg-info/PKG-INFO
17
18
  edgegrid_python.egg-info/SOURCES.txt
@@ -1,9 +1,5 @@
1
1
  requests>=2.24.0
2
2
  requests_toolbelt>=0.9.1
3
- pyOpenSSL>=19.1.0
4
- ndg-httpsclient>=0.5.1
5
- pyasn1>=0.4.8
6
- urllib3>=1.25.10
7
3
 
8
4
  [dev]
9
5
  pylint>=2.7.0
@@ -0,0 +1,20 @@
1
+ #
2
+ # This file is autogenerated by pip-compile with Python 3.13
3
+ # by the following command:
4
+ #
5
+ # pip-compile
6
+ #
7
+ certifi==2025.6.15
8
+ # via requests
9
+ charset-normalizer==3.4.2
10
+ # via requests
11
+ idna==3.10
12
+ # via requests
13
+ requests==2.32.4
14
+ # via
15
+ # edgegrid-python (setup.py)
16
+ # requests-toolbelt
17
+ requests-toolbelt==1.0.0
18
+ # via edgegrid-python (setup.py)
19
+ urllib3==2.5.0
20
+ # via requests
@@ -2,21 +2,17 @@ from setuptools import setup, find_packages
2
2
 
3
3
  setup(
4
4
  name='edgegrid-python',
5
- version='2.0.0',
5
+ version='2.0.2',
6
6
  description='{OPEN} client authentication protocol for python-requests',
7
- long_description=open("README.md").read(),
8
- long_description_content_type="text/markdown",
9
7
  url='https://github.com/akamai/AkamaiOPEN-edgegrid-python',
10
8
  namespace_packages=['akamai'],
11
9
  packages=find_packages(),
12
10
  python_requires=">=3.9",
11
+ long_description=open("README.md").read(),
12
+ long_description_content_type="text/markdown",
13
13
  install_requires=[
14
14
  'requests>=2.24.0',
15
15
  'requests_toolbelt>=0.9.1',
16
- 'pyOpenSSL>=19.1.0',
17
- 'ndg-httpsclient>=0.5.1',
18
- 'pyasn1>=0.4.8',
19
- 'urllib3>=1.25.10'
20
16
  ],
21
17
  extras_require={
22
18
  'dev': [
@@ -1,38 +0,0 @@
1
- #
2
- # This file is autogenerated by pip-compile with Python 3.13
3
- # by the following command:
4
- #
5
- # pip-compile
6
- #
7
- certifi==2024.8.30
8
- # via requests
9
- cffi==1.17.1
10
- # via cryptography
11
- charset-normalizer==3.4.0
12
- # via requests
13
- cryptography==43.0.3
14
- # via pyopenssl
15
- idna==3.10
16
- # via requests
17
- ndg-httpsclient==0.5.1
18
- # via edgegrid-python (setup.py)
19
- pyasn1==0.6.1
20
- # via
21
- # edgegrid-python (setup.py)
22
- # ndg-httpsclient
23
- pycparser==2.22
24
- # via cffi
25
- pyopenssl==24.2.1
26
- # via
27
- # edgegrid-python (setup.py)
28
- # ndg-httpsclient
29
- requests==2.32.3
30
- # via
31
- # edgegrid-python (setup.py)
32
- # requests-toolbelt
33
- requests-toolbelt==1.0.0
34
- # via edgegrid-python (setup.py)
35
- urllib3==2.2.3
36
- # via
37
- # edgegrid-python (setup.py)
38
- # requests