Skip to content

Commit 37f2a7d

Browse files
committed
Version 2.1.0
1 parent ec67514 commit 37f2a7d

File tree

11 files changed

+264
-221
lines changed

11 files changed

+264
-221
lines changed

.github/workflows/ci.yml

Lines changed: 1 addition & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -28,8 +28,4 @@ jobs:
2828
poetry-version: ${{ matrix.poetry-version }}
2929
- run: poetry install
3030
- run: poetry run mypy lokalise/ --ignore-missing-imports . || true
31-
- run: poetry run pytest --cov=lokalise --cov-report=xml --verbose --cov-report term
32-
- uses: codecov/codecov-action@v3
33-
with:
34-
fail_ci_if_error: true
35-
verbose: true
31+
- run: poetry run pytest --cov=lokalise --cov-report=xml --verbose --cov-report term

README.md

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,6 @@
22

33
![PyPI](https://img.shields.io/pypi/v/python-lokalise-api)
44
![CI](https://github.com/lokalise/python-lokalise-api/actions/workflows/ci.yml/badge.svg)
5-
[![Test Coverage](https://codecov.io/gh/lokalise/python-lokalise-api/graph/badge.svg)](https://codecov.io/gh/lokalise/python-lokalise-api)
65
[![Downloads](https://pepy.tech/badge/python-lokalise-api)](https://pepy.tech/project/python-lokalise-api)
76
[![Docs](https://readthedocs.org/projects/python-lokalise-api/badge/?version=latest&style=flat)](https://python-lokalise-api.readthedocs.io)
87

docs/additional_info/changelog.rst

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,16 @@
33
Changelog
44
=========
55

6+
2.1.0 (11-Jan-2023)
7+
-------------------
8+
9+
* Updated the `jwt()` method. To request a JWT, you must provide the project ID:
10+
11+
.. code-block:: python
12+
13+
response = client.jwt("1234.abcd")
14+
response.jwt # => "eyJ0eXAiOiJK..."
15+
616
2.0.0 (09-Dec-2022)
717
-------------------
818

docs/api/jwt.rst

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,13 +4,13 @@ JWT endpoint
44
Get OTA JWT
55
-----------
66

7-
.. py:function:: jwt()
7+
.. py:function:: jwt(project_id, [params = {"service": "ota"}])
88
99
:return: JWT model
1010

1111
Example:
1212

1313
.. code-block:: python
1414
15-
response = client.jwt()
15+
response = client.jwt("1234.abcd")
1616
response.jwt # => "eyJ0eXAiOiJK..."

lokalise/_version.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,4 +4,4 @@
44
This module contains plugin metadata.
55
"""
66

7-
__version__: str = "2.0.0"
7+
__version__: str = "2.1.0"

lokalise/client.py

Lines changed: 11 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -391,12 +391,20 @@ def delete_file(self, project_id: str,
391391
delete(parent_id=project_id, resource_id=file_id)
392392
return response
393393

394-
def jwt(self) -> JwtModel:
395-
"""Fetches OTA JWT.
394+
def jwt(
395+
self,
396+
project_id: str,
397+
params: Optional[Dict[str, Any]] = None
398+
) -> JwtModel:
399+
"""Creates OTA JWT.
396400
397401
:return: JWT model
398402
"""
399-
raw_jwt = self.get_endpoint("jwt").find()
403+
if params is None:
404+
params = {"service": "ota"}
405+
406+
raw_jwt = self.get_endpoint("jwt").create(
407+
parent_id=project_id, params=params)
400408
return JwtModel(raw_jwt)
401409

402410
def keys(self,

lokalise/endpoints/jwt_endpoint.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,4 +9,4 @@
99
class JwtEndpoint(BaseEndpoint):
1010
"""Describes JWT endpoint.
1111
"""
12-
PATH = "jwt-tokens/ota"
12+
PATH = "projects/$parent_id/tokens"

poetry.lock

Lines changed: 221 additions & 196 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

pyproject.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
[tool.poetry]
22
name = "python-lokalise-api"
3-
version = "2.0.0"
3+
version = "2.1.0"
44
description = "Official Python interface for the Lokalise API v2"
55
authors = ["Ilya Krukowski <golosizpru@gmail.com>"]
66
readme = "README.md"

tests/cassettes/jwt_test/test_jwt.yaml

Lines changed: 11 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,20 +1,22 @@
11
interactions:
22
- request:
3-
body: null
3+
body: '{"service": "ota"}'
44
headers:
55
Accept:
66
- application/json
77
Connection:
88
- keep-alive
9+
Content-Length:
10+
- '18'
911
User-Agent:
10-
- python-lokalise-api plugin/1.6.0
12+
- python-lokalise-api plugin/2.0.0
1113
x-api-token:
1214
- FILTERED
13-
method: GET
14-
uri: https://api.lokalise.com/api2/jwt-tokens/ota
15+
method: POST
16+
uri: https://api.lokalise.com/api2/projects/2273827860c1e2473eb195.11207948/tokens
1517
response:
1618
body:
17-
string: '{"jwt":"eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiJ9.eyJ1c2VySWQiOjIwMTgxLCJwcm9qZWN0cyI6W3sidGVhbUlkIjoxNzY2OTIsInByb2plY3RJZCI6Ijk2MzA1NDY2NWI3YzMxM2RkOWIzMjMuMzU4ODY2NTUifSx7InRlYW1JZCI6MTc2NjkyLCJwcm9qZWN0SWQiOiI2NzIxOTg5NDViN2Q3MmZjMDQ4MDIxLjE1OTQwNTEwIn0seyJ0ZWFtSWQiOjE3NjY5MiwicHJvamVjdElkIjoiODAzODI2MTQ1YmE5MGI0MmQ1ZDg2MC40NjgwMDA5OSJ9LHsidGVhbUlkIjoxNzY2OTIsInByb2plY3RJZCI6Ijc4MTYwNjE4NWM3NDU5NGRmMWYwNTUuNzgxOTU2NTgifSx7InRlYW1JZCI6MTc2NjkyLCJwcm9qZWN0SWQiOiI5OTU0Nzg1NTVjODAwNzBlYzAxYWY1LjIwOTI1NDA1In0seyJ0ZWFtSWQiOjE3NjY5MiwicHJvamVjdElkIjoiNjM4NTk3OTg1YzkxM2Y4MTg1NTlmMy4xNzEwNjI4NyJ9LHsidGVhbUlkIjoxODY2MTIsInByb2plY3RJZCI6IjMyNjcyODUzNWNiODhjN2U4MzA2YTkuOTM5MTQ5OTAifSx7InRlYW1JZCI6MTcwMzEyLCJwcm9qZWN0SWQiOiI1Mzc3MjA4MzU4ZDNjN2M5NzRjNGEyLjgwMzYwODMzIn0seyJ0ZWFtSWQiOjE3NjY5MiwicHJvamVjdElkIjoiNDA0MDIxNjU1Y2U2OGQwZjM2YWQyMy4wMjgwMjg5MSJ9LHsidGVhbUlkIjoxNzAzMTIsInByb2plY3RJZCI6IjY2MDA0NDA0NWRiYzE5ZjlkYWNkNjkuOTMxNDc2OTEifSx7InRlYW1JZCI6MTc2NjkyLCJwcm9qZWN0SWQiOiIzNTM0ODI5MzVkY2JmNjZjNTYxZGIzLjIwNDUwMjQyIn0seyJ0ZWFtSWQiOjE3NjY5MiwicHJvamVjdElkIjoiMjE2NDc2NDc1ZGNiZmNkZWJjOGIwMC4yNTA3NTA0OSJ9LHsidGVhbUlkIjoxNzAzMTIsInByb2plY3RJZCI6IjIwNTI3OTU0NWU2ZjZiNWZhZGZiNTkuMTA0NzQyMjYifSx7InRlYW1JZCI6MTc2NjkyLCJwcm9qZWN0SWQiOiI2OTgzODUxMDVlOGRjZDIxZTVmOGU3Ljc2NDk1MDU3In0seyJ0ZWFtSWQiOjE3NjY5MiwicHJvamVjdElkIjoiNzIyMzcxOTU1ZWQ1MDY5NDEyYjcxNS45NDI0MDY3OCJ9LHsidGVhbUlkIjoxNzY2OTIsInByb2plY3RJZCI6IjkxOTgxOTY0NWYwNDRmOThjOWFhYjYuNjE4OTA5MDcifSx7InRlYW1JZCI6MTc2NjkyLCJwcm9qZWN0SWQiOiI2MTY1MzYxNDVmMzJhMDQ0ZGYzODExLjY5NjE0Njg5In0seyJ0ZWFtSWQiOjE3NjY5MiwicHJvamVjdElkIjoiMjI3MzgyNzg2MGMxZTI0NzNlYjE5NS4xMTIwNzk0OCJ9LHsidGVhbUlkIjoxNzY2OTIsInByb2plY3RJZCI6IjIzMzUzMzQ4NjBjMzU1MWM3ZDE0NTguNzc1NTQzNjIifSx7InRlYW1JZCI6MTc2NjkyLCJwcm9qZWN0SWQiOiI0Mzk5ODYzNDYwYzhiYzYxZDI4M2Q1LjQxMzI2NTUxIn0seyJ0ZWFtSWQiOjE3NjY5MiwicHJvamVjdElkIjoiNzA3ODk2NTM2MGRiNDMxZDAyNjc5MS45NjYyMTIyNiJ9LHsidGVhbUlkIjoxNzY2OTIsInByb2plY3RJZCI6IjE5NDg3MzIyNjBlMmVkODlmMDk1ZTEuMTAxNjcwMDEifSx7InRlYW1JZCI6MTc2NjkyLCJwcm9qZWN0SWQiOiIyNTg3NDMzMTYwZWQ4YjBiMTNjNDg3Ljk2MTY4MDMxIn0seyJ0ZWFtSWQiOjE3NjY5MiwicHJvamVjdElkIjoiNzE3NDk0OTk2MTAzMDNhODNhZDhhMi42NzEwMzgzMyJ9LHsidGVhbUlkIjoxNzY2OTIsInByb2plY3RJZCI6IjY3Njk1NzEzNjEyNjY0NWU4OWRkMzUuMDI4NDY4MjYifSx7InRlYW1JZCI6MTc2NjkyLCJwcm9qZWN0SWQiOiI1NDI4ODYxMTYxNTlmNzk4NzIwZGM0Ljk0NzY5NDY0In0seyJ0ZWFtSWQiOjE3NjY5MiwicHJvamVjdElkIjoiNjAyMDQzODY2MTU5ZjdhZGVhMjFmNC4yMjgwOTY4NCJ9LHsidGVhbUlkIjoxNzY2OTIsInByb2plY3RJZCI6IjU2NDAxMTE0NjE1OWZkM2E5ZWU5NTMuMjcxMzU5MzIifSx7InRlYW1JZCI6MTc2NjkyLCJwcm9qZWN0SWQiOiI2NzM3NzY1NDYxNjcyMjE2ZWJmY2IzLjgwMjI0NTY5In0seyJ0ZWFtSWQiOjE3NjY5MiwicHJvamVjdElkIjoiMzkwNjYxNjE2MThkNGVjYjlmZGMxMi4wMDI3NDMwOSJ9LHsidGVhbUlkIjoxNzY2OTIsInByb2plY3RJZCI6IjQxOTI3MTU3NjE5ZTZhYmQxOTA4NjMuMTE5OTMyMjcifSx7InRlYW1JZCI6MTc2NjkyLCJwcm9qZWN0SWQiOiIyMTIxOTE2MDYxYjM4NGFkNTU0NWY3LjUwMDk4NzgzIn0seyJ0ZWFtSWQiOjE3NjY5MiwicHJvamVjdElkIjoiMzY1NDQ3MjM2MWMwOTE1N2I3NjRiMi4xMDM3MDk5MCJ9LHsidGVhbUlkIjoxNzY2OTIsInByb2plY3RJZCI6IjI3ODUzNTUwNjFlMTc3NzIyYTVkMjcuODE4MzcyNDAifSx7InRlYW1JZCI6MTc2NjkyLCJwcm9qZWN0SWQiOiIyMDY4NzcxMjYxZTE3YTlmNTMwYWY5LjIwMzI3OTU5In0seyJ0ZWFtSWQiOjE3NjY5MiwicHJvamVjdElkIjoiNDA1NTA5Mzk2MWU2YzUyYzRhZmRlMy45ODM5NTg2OSJ9LHsidGVhbUlkIjoxNzY2OTIsInByb2plY3RJZCI6IjYzMjc3OTE1NjFlNmY1MmQ3Y2RhZDkuMjc2MzU2OTMifSx7InRlYW1JZCI6MTc2NjkyLCJwcm9qZWN0SWQiOiI0NTkwOTQzMTYxZTdmY2UwNTdiZDc0LjE1NjI1ODQ1In0seyJ0ZWFtSWQiOjE3NjY5MiwicHJvamVjdElkIjoiMTM3ODQ5NzE2MWY5OTM0NTU1NjhhNS42NzUxODgzOSJ9LHsidGVhbUlkIjoxNzY2OTIsInByb2plY3RJZCI6IjY3NTQ3MzU3NjFmYzE1OTk0YmRhNzYuMzQwNzM2MTEifSx7InRlYW1JZCI6MTc2NjkyLCJwcm9qZWN0SWQiOiI0NjM0MDkwOTYyMzFlMmY0YTJjNjgxLjIxMzY1OTA3In0seyJ0ZWFtSWQiOjE3NjY5MiwicHJvamVjdElkIjoiODMyMzk0MTU2MjM0YzU1NjliYzIxMC4xMzA4MDA2MyJ9LHsidGVhbUlkIjoxNzY2OTIsInByb2plY3RJZCI6IjUwNzUwNDE4NjI0MmZjY2IzMmYwMTUuMTUyNTI1NTYifSx7InRlYW1JZCI6MTc2NjkyLCJwcm9qZWN0SWQiOiI5NTE1NTM5ODYyNGFmZDIxNTU2YzAxLjY0MzkzNTEwIn0seyJ0ZWFtSWQiOjE3NjY5MiwicHJvamVjdElkIjoiNzI1OTk2OTA2MjU2YjhhZGM1MWQ1Ny43NjgzNjYyMCJ9LHsidGVhbUlkIjoxNzY2OTIsInByb2plY3RJZCI6IjQ1MTM5OTA5NjI2MDE4NjIzZDEyNDMuMTU5MDM5NTIifSx7InRlYW1JZCI6MTc2NjkyLCJwcm9qZWN0SWQiOiI3Nzk1MDg2MzYyN2JhMjNjZWZlMTI3LjczMjU4Njg0In0seyJ0ZWFtSWQiOjE3NjY5MiwicHJvamVjdElkIjoiNzEzODY2NjY2Mjk2MTExNjQzYmYwNC4wMDE0ODI2OCJ9LHsidGVhbUlkIjoxNzY2OTIsInByb2plY3RJZCI6Ijc4Nzc4MDY2NjI5ZjNhODE4ZmM4NjcuMjk2Mjk5OTIifSx7InRlYW1JZCI6MTc2NjkyLCJwcm9qZWN0SWQiOiIyMDExMDE2NDYyOWYzYjM3Y2U3Yjg2LjE3NjE3MDIzIn0seyJ0ZWFtSWQiOjE3NjY5MiwicHJvamVjdElkIjoiMjU0Mjg2OTM2MmJjMzNhNWM1ZDBhMS41NzEzMDE4MCJ9LHsidGVhbUlkIjoxNzY2OTIsInByb2plY3RJZCI6IjU0MDM5NTc4NjJlOTA5ODFkMGIwYzguNjAyODg5NTcifSx7InRlYW1JZCI6MTc2NjkyLCJwcm9qZWN0SWQiOiI5MTM2MDE2NjYzMDhjNjRkYzEzYmI5LjUyODExNTcyIn0seyJ0ZWFtSWQiOjE3NjY5MiwicHJvamVjdElkIjoiOTA1Nzc4NjI2MzM0MTkzNDYxMmRmOC4xNTE2MjUwNCJ9LHsidGVhbUlkIjoxNzY2OTIsInByb2plY3RJZCI6IjU4MjA2MDU1NjM0NDAwZWVlNDljODcuOTgzOTUwNjgifSx7InRlYW1JZCI6MTc2NjkyLCJwcm9qZWN0SWQiOiI3MzI0MzE1MjYzNGZlOTA1MjE1M2ExLjk2Njg1OTI0In0seyJ0ZWFtSWQiOjE3NjY5MiwicHJvamVjdElkIjoiMjM5MjExNDM2MzU2ODgxODk5MjdmOC44NzM3MzcwNyJ9LHsidGVhbUlkIjoxNzY2OTIsInByb2plY3RJZCI6Ijg0MzA3NDQ0NjM1YTc1N2Y4OThiZDYuMDU5NDk1NDkifSx7InRlYW1JZCI6MTc2NjkyLCJwcm9qZWN0SWQiOiI1OTU5OTkwMzYzNWFjMDk2NDJkZTgwLjgwNzQ4MDI4In0seyJ0ZWFtSWQiOjE3NjY5MiwicHJvamVjdElkIjoiNTE5MzU5MzY2Mzg2ODZiMmRlZDgzMS45MzA1OTU5MiJ9XSwiZXhwIjoxNjY5ODQ0MzMwfQ.KUyB_SBgiPUQgV3nnV9MAwen6v4WCa11NL0BEZnyOo2RHgozauGBRsKVa3_XYC7AKuSI_VGDLhw4LBVxcyC1-9LHdJ7VyrZD6auuW1j49bPf_M_B78xVkazRxmaNR39wi0hi7qmUKpNDjkQyIZ_rlwhRj8hwUfyo7TC0k61WWXVc8wXrDhRfU6lB5ifgU4o6SwXBYULvlrKdYm7BCZkOI_G87Cq6dmNQUkdrdybqKYfKhyXBJf4HE47406NYTey4KBMZdZahEdPM2xvrc19PuY-k7idpx0HAGJtFurwFa84Z7hbZw6L37QU17yoZ9KiEL7vdhGznkhmm4Zxj2hrSgqkpkl7irYG517czTiztQ1L7tcMoPL3_0mkiwLJZTBhG96Oy4IlgoURgFUVZ_QId8B_fFNUi1ZDJ96byCaoNavBxV6YW-u-7ouTs2KD2-Mez1Ze7LaZL-waJyYuTTAiHlYDNxOFGoDKOpHTqs049SA9z0z7xVyERLFUAreprM3GY7sozvlizW5cnBUVcLyoWr9QQcKAeMlEjpROYrbF77CDP7kTFODteiOLUogKxBup-hHKZffdd6tJcJwl5ovKKQDoY3O9ReYwb37dE9d3H3jFQiqcGCua6J-HRr11cz9kLxxtO3HUG53zHuipAXfhW6AQy6oaDdR64-gBHNNyfTM4"}'
19+
string: '{"jwt":"eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiJ9.eyJ1c2VySWQiOjIwMTgxLCJwcm9qZWN0cyI6W3sidGVhbUlkIjoxNzY2OTIsInByb2plY3RJZCI6IjIyNzM4Mjc4NjBjMWUyNDczZWIxOTUuMTEyMDc5NDgifV0sImV4cCI6MTY3MzQ1NzA4OH0.NvpX_74yuxf_QY0wPkdsIJQqLILN8tnMas39iSNS2CxK1TJ5KirTafjecESiDUW5oyFKUJNEoQOq5ShIT7sAHnfZXJ7knncGLa37KbSsbdzUXssHtJj1f3J_7I8l5Sz4xBdzpCXWeeXAxDxYQGBHkMEsph6zaSkWmjRCOIQ6F5Q5eRD95keId2268XX69ohwMcNZFM9ruboeStirh0DgAytdtWRospUkmfHt3pbnT_GISI0LkPZK8ShvAoAOD7y1xEosHBUQa4LKK_LZsoDWhlYKrqy6fDcpMmnIjdsgWMttRcTbPIET3dFTcwudxpf6_iOUdSylVAIX3_6j76b4TOECWYGYZjjH2M-LmE13QebUiMuAJsqpbM9V9Jg5Kw9rQQpiXYqMz23MEYEI94zwXdqwAjB55xPGvQy2N6gDZJNDdzfulQZt3Cq3KjJyD5UGBLfjRlsKFpM61EiLWfWx569Jsz0f2qWbZsEzhiT5ZwDdT2nJMcqjcQ79Y0E0lmmthHvxxb3p-p5icvfrTp8xsakxOvki-fwAeBJZAdykdaTX2t2kTHXjrEIf-sgn38obc9jfXY_inQ3_Olaz3MEhDEYoVatMbRmmvcLl_94Tvrl_WpCjXdmu4wyP2MNGVXZIQ01u1PHcJelg8YdTzdlvubFjrF-9sGKJCardl87MEbs"}'
1820
headers:
1921
Access-Control-Allow-Headers:
2022
- Content-Type
@@ -27,15 +29,15 @@ interactions:
2729
Content-Type:
2830
- application/json
2931
Date:
30-
- Wed, 30 Nov 2022 21:08:50 GMT
32+
- Wed, 11 Jan 2023 16:41:28 GMT
3133
Expires:
32-
- Wed, 30 Nov 2022 21:08:50 GMT
34+
- Wed, 11 Jan 2023 16:41:28 GMT
3335
Referrer-Policy:
3436
- origin
3537
Server:
3638
- nginx
3739
Set-Cookie:
38-
- PHPSESSID=deleted; expires=Tue, 30-Nov-2021 21:08:49 GMT; Max-Age=0; path=/;
40+
- PHPSESSID=deleted; expires=Tue, 11-Jan-2022 16:41:27 GMT; Max-Age=0; path=/;
3941
httponly
4042
Strict-Transport-Security:
4143
- max-age=31536000
@@ -48,7 +50,7 @@ interactions:
4850
X-Frame-Options:
4951
- deny
5052
X-Lokalise-Process-Id:
51-
- b8f8adf5-f1da-45b1-ad36-f486f5663f35
53+
- 8fc4b779-0cd0-472d-89a1-05ac8e14488f
5254
X-XSS-Protection:
5355
- 1; mode=block
5456
pragma:

0 commit comments

Comments
 (0)