layrz-sdk 3.1.12__tar.gz → 3.1.14__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.
Potentially problematic release.
This version of layrz-sdk might be problematic. Click here for more details.
- {layrz_sdk-3.1.12 → layrz_sdk-3.1.14}/.github/workflows/deploy.yml +2 -7
- {layrz_sdk-3.1.12 → layrz_sdk-3.1.14}/.vscode/settings.json +10 -1
- {layrz_sdk-3.1.12 → layrz_sdk-3.1.14}/CHANGELOG.md +4 -0
- {layrz_sdk-3.1.12 → layrz_sdk-3.1.14}/CODE_OF_CONDUCT.md +5 -0
- layrz_sdk-3.1.14/CONTRIBUTING.md +26 -0
- {layrz_sdk-3.1.12/layrz_sdk.egg-info → layrz_sdk-3.1.14}/PKG-INFO +1 -1
- {layrz_sdk-3.1.12 → layrz_sdk-3.1.14}/layrz_sdk/entities/case.py +5 -1
- layrz_sdk-3.1.14/layrz_sdk/entities/custom_report_page.py +40 -0
- {layrz_sdk-3.1.12 → layrz_sdk-3.1.14}/layrz_sdk/entities/report.py +7 -1
- {layrz_sdk-3.1.12 → layrz_sdk-3.1.14/layrz_sdk.egg-info}/PKG-INFO +1 -1
- {layrz_sdk-3.1.12 → layrz_sdk-3.1.14}/pyproject.toml +104 -104
- {layrz_sdk-3.1.12 → layrz_sdk-3.1.14}/uv.lock +1 -1
- layrz_sdk-3.1.12/CONTRIBUTING.md +0 -30
- layrz_sdk-3.1.12/layrz_sdk/entities/custom_report_page.py +0 -16
- {layrz_sdk-3.1.12 → layrz_sdk-3.1.14}/.github/workflows/checks.yml +0 -0
- {layrz_sdk-3.1.12 → layrz_sdk-3.1.14}/.gitignore +0 -0
- {layrz_sdk-3.1.12 → layrz_sdk-3.1.14}/.vscode/extensions.json +0 -0
- {layrz_sdk-3.1.12 → layrz_sdk-3.1.14}/LICENSE +0 -0
- {layrz_sdk-3.1.12 → layrz_sdk-3.1.14}/README.md +0 -0
- {layrz_sdk-3.1.12 → layrz_sdk-3.1.14}/layrz_sdk/__init__.py +0 -0
- {layrz_sdk-3.1.12 → layrz_sdk-3.1.14}/layrz_sdk/constants.py +0 -0
- {layrz_sdk-3.1.12 → layrz_sdk-3.1.14}/layrz_sdk/entities/__init__.py +0 -0
- {layrz_sdk-3.1.12 → layrz_sdk-3.1.14}/layrz_sdk/entities/asset.py +0 -0
- {layrz_sdk-3.1.12 → layrz_sdk-3.1.14}/layrz_sdk/entities/asset_operation_mode.py +0 -0
- {layrz_sdk-3.1.12 → layrz_sdk-3.1.14}/layrz_sdk/entities/broadcast_request.py +0 -0
- {layrz_sdk-3.1.12 → layrz_sdk-3.1.14}/layrz_sdk/entities/broadcast_response.py +0 -0
- {layrz_sdk-3.1.12 → layrz_sdk-3.1.14}/layrz_sdk/entities/broadcast_result.py +0 -0
- {layrz_sdk-3.1.12 → layrz_sdk-3.1.14}/layrz_sdk/entities/broadcast_status.py +0 -0
- {layrz_sdk-3.1.12 → layrz_sdk-3.1.14}/layrz_sdk/entities/case_ignored_status.py +0 -0
- {layrz_sdk-3.1.12 → layrz_sdk-3.1.14}/layrz_sdk/entities/case_status.py +0 -0
- {layrz_sdk-3.1.12 → layrz_sdk-3.1.14}/layrz_sdk/entities/charts/axis_config.py +0 -0
- {layrz_sdk-3.1.12 → layrz_sdk-3.1.14}/layrz_sdk/entities/charts/bar_chart.py +0 -0
- {layrz_sdk-3.1.12 → layrz_sdk-3.1.14}/layrz_sdk/entities/charts/chart_alignment.py +0 -0
- {layrz_sdk-3.1.12 → layrz_sdk-3.1.14}/layrz_sdk/entities/charts/chart_color.py +0 -0
- {layrz_sdk-3.1.12 → layrz_sdk-3.1.14}/layrz_sdk/entities/charts/chart_configuration.py +0 -0
- {layrz_sdk-3.1.12 → layrz_sdk-3.1.14}/layrz_sdk/entities/charts/chart_data_serie.py +0 -0
- {layrz_sdk-3.1.12 → layrz_sdk-3.1.14}/layrz_sdk/entities/charts/chart_data_serie_type.py +0 -0
- {layrz_sdk-3.1.12 → layrz_sdk-3.1.14}/layrz_sdk/entities/charts/chart_data_type.py +0 -0
- {layrz_sdk-3.1.12 → layrz_sdk-3.1.14}/layrz_sdk/entities/charts/chart_render_technology.py +0 -0
- {layrz_sdk-3.1.12 → layrz_sdk-3.1.14}/layrz_sdk/entities/charts/column_chart.py +0 -0
- {layrz_sdk-3.1.12 → layrz_sdk-3.1.14}/layrz_sdk/entities/charts/html_chart.py +0 -0
- {layrz_sdk-3.1.12 → layrz_sdk-3.1.14}/layrz_sdk/entities/charts/line_chart.py +0 -0
- {layrz_sdk-3.1.12 → layrz_sdk-3.1.14}/layrz_sdk/entities/charts/map_center_type.py +0 -0
- {layrz_sdk-3.1.12 → layrz_sdk-3.1.14}/layrz_sdk/entities/charts/map_chart.py +0 -0
- {layrz_sdk-3.1.12 → layrz_sdk-3.1.14}/layrz_sdk/entities/charts/map_point.py +0 -0
- {layrz_sdk-3.1.12 → layrz_sdk-3.1.14}/layrz_sdk/entities/charts/number_chart.py +0 -0
- {layrz_sdk-3.1.12 → layrz_sdk-3.1.14}/layrz_sdk/entities/charts/pie_chart.py +0 -0
- {layrz_sdk-3.1.12 → layrz_sdk-3.1.14}/layrz_sdk/entities/charts/radar_chart.py +0 -0
- {layrz_sdk-3.1.12 → layrz_sdk-3.1.14}/layrz_sdk/entities/charts/radial_bar_chart.py +0 -0
- {layrz_sdk-3.1.12 → layrz_sdk-3.1.14}/layrz_sdk/entities/charts/scatter_chart.py +0 -0
- {layrz_sdk-3.1.12 → layrz_sdk-3.1.14}/layrz_sdk/entities/charts/scatter_serie.py +0 -0
- {layrz_sdk-3.1.12 → layrz_sdk-3.1.14}/layrz_sdk/entities/charts/scatter_serie_item.py +0 -0
- {layrz_sdk-3.1.12 → layrz_sdk-3.1.14}/layrz_sdk/entities/charts/table_chart.py +0 -0
- {layrz_sdk-3.1.12 → layrz_sdk-3.1.14}/layrz_sdk/entities/charts/table_header.py +0 -0
- {layrz_sdk-3.1.12 → layrz_sdk-3.1.14}/layrz_sdk/entities/charts/table_row.py +0 -0
- {layrz_sdk-3.1.12 → layrz_sdk-3.1.14}/layrz_sdk/entities/charts/timeline_chart.py +0 -0
- {layrz_sdk-3.1.12 → layrz_sdk-3.1.14}/layrz_sdk/entities/charts/timeline_serie.py +0 -0
- {layrz_sdk-3.1.12 → layrz_sdk-3.1.14}/layrz_sdk/entities/charts/timeline_serie_item.py +0 -0
- {layrz_sdk-3.1.12 → layrz_sdk-3.1.14}/layrz_sdk/entities/checkpoint.py +0 -0
- {layrz_sdk-3.1.12 → layrz_sdk-3.1.14}/layrz_sdk/entities/comment.py +0 -0
- {layrz_sdk-3.1.12 → layrz_sdk-3.1.14}/layrz_sdk/entities/custom_field.py +0 -0
- {layrz_sdk-3.1.12 → layrz_sdk-3.1.14}/layrz_sdk/entities/device.py +0 -0
- {layrz_sdk-3.1.12 → layrz_sdk-3.1.14}/layrz_sdk/entities/event.py +0 -0
- {layrz_sdk-3.1.12 → layrz_sdk-3.1.14}/layrz_sdk/entities/geofence.py +0 -0
- {layrz_sdk-3.1.12 → layrz_sdk-3.1.14}/layrz_sdk/entities/last_message.py +0 -0
- {layrz_sdk-3.1.12 → layrz_sdk-3.1.14}/layrz_sdk/entities/message.py +0 -0
- {layrz_sdk-3.1.12 → layrz_sdk-3.1.14}/layrz_sdk/entities/outbound_service.py +0 -0
- {layrz_sdk-3.1.12 → layrz_sdk-3.1.14}/layrz_sdk/entities/position.py +0 -0
- {layrz_sdk-3.1.12 → layrz_sdk-3.1.14}/layrz_sdk/entities/presence_type.py +0 -0
- {layrz_sdk-3.1.12 → layrz_sdk-3.1.14}/layrz_sdk/entities/report_col.py +0 -0
- {layrz_sdk-3.1.12 → layrz_sdk-3.1.14}/layrz_sdk/entities/report_configuration.py +0 -0
- {layrz_sdk-3.1.12 → layrz_sdk-3.1.14}/layrz_sdk/entities/report_data_type.py +0 -0
- {layrz_sdk-3.1.12 → layrz_sdk-3.1.14}/layrz_sdk/entities/report_format.py +0 -0
- {layrz_sdk-3.1.12 → layrz_sdk-3.1.14}/layrz_sdk/entities/report_header.py +0 -0
- {layrz_sdk-3.1.12 → layrz_sdk-3.1.14}/layrz_sdk/entities/report_page.py +0 -0
- {layrz_sdk-3.1.12 → layrz_sdk-3.1.14}/layrz_sdk/entities/report_row.py +0 -0
- {layrz_sdk-3.1.12 → layrz_sdk-3.1.14}/layrz_sdk/entities/sensor.py +0 -0
- {layrz_sdk-3.1.12 → layrz_sdk-3.1.14}/layrz_sdk/entities/text_alignment.py +0 -0
- {layrz_sdk-3.1.12 → layrz_sdk-3.1.14}/layrz_sdk/entities/trigger.py +0 -0
- {layrz_sdk-3.1.12 → layrz_sdk-3.1.14}/layrz_sdk/entities/user.py +0 -0
- {layrz_sdk-3.1.12 → layrz_sdk-3.1.14}/layrz_sdk/entities/waypoint.py +0 -0
- {layrz_sdk-3.1.12 → layrz_sdk-3.1.14}/layrz_sdk/helpers/__init__.py +0 -0
- {layrz_sdk-3.1.12 → layrz_sdk-3.1.14}/layrz_sdk/helpers/color.py +0 -0
- {layrz_sdk-3.1.12 → layrz_sdk-3.1.14}/layrz_sdk/lcl/__init__.py +0 -0
- {layrz_sdk-3.1.12 → layrz_sdk-3.1.14}/layrz_sdk/lcl/core.py +0 -0
- {layrz_sdk-3.1.12 → layrz_sdk-3.1.14}/layrz_sdk/py.typed +0 -0
- {layrz_sdk-3.1.12 → layrz_sdk-3.1.14}/layrz_sdk.egg-info/SOURCES.txt +0 -0
- {layrz_sdk-3.1.12 → layrz_sdk-3.1.14}/layrz_sdk.egg-info/dependency_links.txt +0 -0
- {layrz_sdk-3.1.12 → layrz_sdk-3.1.14}/layrz_sdk.egg-info/requires.txt +0 -0
- {layrz_sdk-3.1.12 → layrz_sdk-3.1.14}/layrz_sdk.egg-info/top_level.txt +0 -0
- {layrz_sdk-3.1.12 → layrz_sdk-3.1.14}/manual_deploy.py +0 -0
- {layrz_sdk-3.1.12 → layrz_sdk-3.1.14}/setup.cfg +0 -0
- {layrz_sdk-3.1.12 → layrz_sdk-3.1.14}/tests/__init__.py +0 -0
- {layrz_sdk-3.1.12 → layrz_sdk-3.1.14}/tests/test_lcl.py +0 -0
|
@@ -24,14 +24,9 @@ jobs:
|
|
|
24
24
|
- name: Checkout
|
|
25
25
|
uses: actions/checkout@v4
|
|
26
26
|
|
|
27
|
-
- name: Build
|
|
27
|
+
- name: Build and upload
|
|
28
28
|
run: |
|
|
29
29
|
uv venv --python 3.13
|
|
30
30
|
uv sync --only-group dev
|
|
31
31
|
uv run python -m build
|
|
32
|
-
|
|
33
|
-
- name: Upload to Python Package Index
|
|
34
|
-
uses: pypa/gh-action-pypi-publish@v1.8.10
|
|
35
|
-
with:
|
|
36
|
-
user: ${{ secrets.LAYRZ_PYPI_USERNAME }}
|
|
37
|
-
password: ${{ secrets.LAYRZ_PYPI_PASSWORD }}
|
|
32
|
+
uv run python -m twine upload -u ${{ secrets.LAYRZ_PYPI_USERNAME }} -p ${{ secrets.LAYRZ_PYPI_PASSWORD }} dist/*
|
|
@@ -18,5 +18,14 @@
|
|
|
18
18
|
],
|
|
19
19
|
"mypy-type-checker.importStrategy": "fromEnvironment",
|
|
20
20
|
"python.testing.unittestEnabled": false,
|
|
21
|
-
"python.testing.pytestEnabled": true
|
|
21
|
+
"python.testing.pytestEnabled": true,
|
|
22
|
+
"cSpell.words": [
|
|
23
|
+
"Aptos",
|
|
24
|
+
"autofit",
|
|
25
|
+
"layrz",
|
|
26
|
+
"msoffice",
|
|
27
|
+
"rtype",
|
|
28
|
+
"xlswriter",
|
|
29
|
+
"xslx"
|
|
30
|
+
]
|
|
22
31
|
}
|
|
@@ -1,18 +1,23 @@
|
|
|
1
1
|
# Code of conduct
|
|
2
2
|
|
|
3
3
|
## Be friendly and patient.
|
|
4
|
+
|
|
4
5
|
Our objective is contribute to community and help us together to create better code.
|
|
5
6
|
|
|
6
7
|
## Be welcoming
|
|
8
|
+
|
|
7
9
|
We strive to be a community that welcomes and supports people of all backgrounds and identities. This includes, but is not limited to members of any race, ethnicity, culture, national origin, colour, immigration status, social and economic class, educational level, sex, sexual orientation, gender identity and expression, age, size, family status, political belief, religion, and mental and physical ability.
|
|
8
10
|
|
|
9
11
|
## Be considerate
|
|
12
|
+
|
|
10
13
|
Your work will be used by other people, and you in turn will depend on the work of others. Any decision you take will affect users and colleagues, and you should take those consequences into account when making decisions. Remember that we're a world-wide community, so you might not be communicating in someone else's primary language.
|
|
11
14
|
|
|
12
15
|
## Be respectful
|
|
16
|
+
|
|
13
17
|
Not all of us will agree all the time, but disagreement is no excuse for poor behavior and poor manners. We might all experience some frustration now and then, but we cannot allow that frustration to turn into a personal attack. It’s important to remember that a community where people feel uncomfortable or threatened is not a productive one.
|
|
14
18
|
|
|
15
19
|
## Be careful in the words that you choose
|
|
20
|
+
|
|
16
21
|
We are a community of professionals, and we conduct ourselves professionally. Be kind to others. Do not insult or put down other participants. Harassment and other exclusionary behavior aren't acceptable. This includes, but is not limited to:
|
|
17
22
|
* Violent threats or language directed against another person.
|
|
18
23
|
* Discriminatory jokes and language.
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
# Contributing
|
|
2
|
+
|
|
3
|
+
As an open source project, we welcomes contributions of many forms.
|
|
4
|
+
|
|
5
|
+
## To request a Pull Request
|
|
6
|
+
|
|
7
|
+
Please follow the next structure of your request:
|
|
8
|
+
|
|
9
|
+
1. **Title**: A short description of the change.
|
|
10
|
+
|
|
11
|
+
2. **Description**: A detailed description of the change, including:
|
|
12
|
+
- What is the problem you are solving?
|
|
13
|
+
- How does your change solve the problem?
|
|
14
|
+
- Any additional information that might be helpful for reviewers.
|
|
15
|
+
|
|
16
|
+
3. **Code**: The code changes you are proposing, including:
|
|
17
|
+
- The files you are changing.
|
|
18
|
+
- The specific lines of code that are being added, modified, or removed.
|
|
19
|
+
- Any tests you have written to verify your changes.
|
|
20
|
+
|
|
21
|
+
4. **Testing**: A description of how you tested your changes, including:
|
|
22
|
+
- The environment you tested in (e.g., local, staging).
|
|
23
|
+
- Any specific test cases you ran.
|
|
24
|
+
- The results of your tests.
|
|
25
|
+
|
|
26
|
+
You can attach screenshots or other files to help illustrate your changes.
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: layrz-sdk
|
|
3
|
-
Version: 3.1.
|
|
3
|
+
Version: 3.1.14
|
|
4
4
|
Summary: Layrz SDK for Python
|
|
5
5
|
Author-email: "Golden M, Inc." <software@goldenm.com>
|
|
6
6
|
Maintainer-email: Kenny Mochizuki <kenny@goldenm.com>, Luis Reyes <lreyes@goldenm.com>, Kasen Li <kli@goldenm.com>
|
|
@@ -41,7 +41,11 @@ class Case(BaseModel):
|
|
|
41
41
|
"""Validate model"""
|
|
42
42
|
sequence = data.get('sequence')
|
|
43
43
|
if sequence is not None and isinstance(sequence, int):
|
|
44
|
-
|
|
44
|
+
trigger = data['trigger']
|
|
45
|
+
if not isinstance(trigger, Trigger):
|
|
46
|
+
data['sequence'] = f'{trigger["code"]}/{data["pk"]}'
|
|
47
|
+
else:
|
|
48
|
+
data['sequence'] = f'{trigger.code}/{sequence}'
|
|
45
49
|
else:
|
|
46
50
|
data['sequence'] = f'GENERIC/{data["pk"]}'
|
|
47
51
|
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
from collections.abc import Callable
|
|
2
|
+
from typing import Any, Protocol, runtime_checkable
|
|
3
|
+
|
|
4
|
+
from pydantic import BaseModel, ConfigDict, Field
|
|
5
|
+
from xlsxwriter.worksheet import Worksheet
|
|
6
|
+
|
|
7
|
+
|
|
8
|
+
@runtime_checkable
|
|
9
|
+
class BuilderFunction(Protocol):
|
|
10
|
+
"""
|
|
11
|
+
Protocol for the builder function.
|
|
12
|
+
"""
|
|
13
|
+
|
|
14
|
+
def __call__(self, *, sheet: Worksheet, **kwargs: Any) -> None: ...
|
|
15
|
+
|
|
16
|
+
|
|
17
|
+
class CustomReportPage(BaseModel):
|
|
18
|
+
"""
|
|
19
|
+
Custom report page
|
|
20
|
+
Basically it's a wrapper of the `xlswriter` worksheet that uses a function to construct the page
|
|
21
|
+
"""
|
|
22
|
+
|
|
23
|
+
model_config = ConfigDict(
|
|
24
|
+
from_attributes=True,
|
|
25
|
+
arbitrary_types_allowed=True,
|
|
26
|
+
)
|
|
27
|
+
|
|
28
|
+
name: str = Field(description='Name of the page. Length should be less than 60 characters')
|
|
29
|
+
builder: Callable[[Worksheet], None] | None = Field(
|
|
30
|
+
description=('Function to build the page. The only argument is the worksheet object'),
|
|
31
|
+
default=None,
|
|
32
|
+
)
|
|
33
|
+
extended_builder: BuilderFunction | None = Field(
|
|
34
|
+
description=(
|
|
35
|
+
'Function to build the page. The first argument is the worksheet object, '
|
|
36
|
+
'and the rest are the kwargs to give support for the builder function.'
|
|
37
|
+
'\n Currently, the only supported kwarg is `workbook` which is the workbook object'
|
|
38
|
+
),
|
|
39
|
+
default=None,
|
|
40
|
+
)
|
|
@@ -190,7 +190,13 @@ class Report(BaseModel):
|
|
|
190
190
|
sheet = book.add_worksheet(sheet_name)
|
|
191
191
|
|
|
192
192
|
if isinstance(page, CustomReportPage):
|
|
193
|
-
page.
|
|
193
|
+
if page.extended_builder:
|
|
194
|
+
page.extended_builder(sheet=sheet, workbook=book)
|
|
195
|
+
elif page.builder:
|
|
196
|
+
page.builder(sheet)
|
|
197
|
+
else:
|
|
198
|
+
raise AttributeError('Custom report page must have a builder or extended_builder function')
|
|
199
|
+
|
|
194
200
|
sheet.autofit()
|
|
195
201
|
continue
|
|
196
202
|
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: layrz-sdk
|
|
3
|
-
Version: 3.1.
|
|
3
|
+
Version: 3.1.14
|
|
4
4
|
Summary: Layrz SDK for Python
|
|
5
5
|
Author-email: "Golden M, Inc." <software@goldenm.com>
|
|
6
6
|
Maintainer-email: Kenny Mochizuki <kenny@goldenm.com>, Luis Reyes <lreyes@goldenm.com>, Kasen Li <kli@goldenm.com>
|
|
@@ -1,104 +1,104 @@
|
|
|
1
|
-
[project]
|
|
2
|
-
name = "layrz-sdk"
|
|
3
|
-
version = "3.1.
|
|
4
|
-
description = "Layrz SDK for Python"
|
|
5
|
-
authors = [
|
|
6
|
-
{name = "Golden M, Inc.", email = "software@goldenm.com"}
|
|
7
|
-
]
|
|
8
|
-
requires-python = ">=3.10, <3.14"
|
|
9
|
-
|
|
10
|
-
maintainers = [
|
|
11
|
-
{name = "Kenny Mochizuki", email = "kenny@goldenm.com"},
|
|
12
|
-
{name = "Luis Reyes", email = "lreyes@goldenm.com"},
|
|
13
|
-
{name = "Kasen Li", email = "kli@goldenm.com"},
|
|
14
|
-
]
|
|
15
|
-
|
|
16
|
-
readme = "README.md"
|
|
17
|
-
|
|
18
|
-
license = {text = "MIT License"}
|
|
19
|
-
|
|
20
|
-
keywords = [
|
|
21
|
-
"sdk",
|
|
22
|
-
"goldenm",
|
|
23
|
-
"lcl",
|
|
24
|
-
"layrz compute language",
|
|
25
|
-
"layrz",
|
|
26
|
-
]
|
|
27
|
-
classifiers = [
|
|
28
|
-
"Programming Language :: Python :: 3",
|
|
29
|
-
"Programming Language :: Python :: 3.10",
|
|
30
|
-
"Programming Language :: Python :: 3.11",
|
|
31
|
-
"Programming Language :: Python :: 3.12",
|
|
32
|
-
"Programming Language :: Python :: 3.13",
|
|
33
|
-
]
|
|
34
|
-
dependencies = [
|
|
35
|
-
"requests",
|
|
36
|
-
"xlsxwriter",
|
|
37
|
-
"tzdata",
|
|
38
|
-
"pydantic>=2.10.6",
|
|
39
|
-
"typing-extensions>=4.10.0",
|
|
40
|
-
]
|
|
41
|
-
|
|
42
|
-
[project.urls]
|
|
43
|
-
Repository = "https://github.com/goldenm-software/layrz-sdk"
|
|
44
|
-
Changelog = "https://github.com/goldenm-software/layrz-sdk/blob/main/CHANGELOG.md"
|
|
45
|
-
|
|
46
|
-
[build-system]
|
|
47
|
-
requires = ["setuptools", "setuptools-scm"]
|
|
48
|
-
build-backend = "setuptools.build_meta"
|
|
49
|
-
|
|
50
|
-
[dependency-groups]
|
|
51
|
-
dev = [
|
|
52
|
-
"build>=1.2.2.post1",
|
|
53
|
-
"mypy>=1.15.0",
|
|
54
|
-
"pytest>=8.3.5",
|
|
55
|
-
"python-dotenv>=1.0.1",
|
|
56
|
-
"ruff>=0.11.0",
|
|
57
|
-
"twine>=6.1.0",
|
|
58
|
-
]
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
[tool.ruff]
|
|
62
|
-
indent-width = 2
|
|
63
|
-
line-length = 120
|
|
64
|
-
|
|
65
|
-
exclude = [".venv"]
|
|
66
|
-
|
|
67
|
-
[tool.ruff.lint]
|
|
68
|
-
ignore = [
|
|
69
|
-
"F401", # Unused import
|
|
70
|
-
"E701", # Multiple statements on one line
|
|
71
|
-
"TD003", # Missing issue link
|
|
72
|
-
"ANN401", # Any type annotation
|
|
73
|
-
]
|
|
74
|
-
|
|
75
|
-
select = [
|
|
76
|
-
"I", # isort
|
|
77
|
-
"E", "W", # pycodestyle
|
|
78
|
-
"F", # pyflakes
|
|
79
|
-
"B", # flakes8-bugbear
|
|
80
|
-
"TD", # flake8-todo
|
|
81
|
-
"DJ", # flake8-django
|
|
82
|
-
"DTZ", # flake8-datetimez
|
|
83
|
-
"T20", # flake8-print # En un futuro
|
|
84
|
-
"PYI", # flake8-pyi
|
|
85
|
-
"ANN", # flake8-annotations
|
|
86
|
-
]
|
|
87
|
-
|
|
88
|
-
[tool.ruff.format]
|
|
89
|
-
quote-style = "single"
|
|
90
|
-
indent-style = "space"
|
|
91
|
-
docstring-code-format = true
|
|
92
|
-
|
|
93
|
-
[tool.mypy]
|
|
94
|
-
python_version = "3.10"
|
|
95
|
-
strict = true
|
|
96
|
-
ignore_missing_imports = true
|
|
97
|
-
check_untyped_defs = true
|
|
98
|
-
disallow_untyped_defs = true
|
|
99
|
-
|
|
100
|
-
exclude = [
|
|
101
|
-
".*\\.venv",
|
|
102
|
-
".*\\.ruff_cache",
|
|
103
|
-
".*\\.mypy_cache",
|
|
104
|
-
]
|
|
1
|
+
[project]
|
|
2
|
+
name = "layrz-sdk"
|
|
3
|
+
version = "3.1.14"
|
|
4
|
+
description = "Layrz SDK for Python"
|
|
5
|
+
authors = [
|
|
6
|
+
{name = "Golden M, Inc.", email = "software@goldenm.com"}
|
|
7
|
+
]
|
|
8
|
+
requires-python = ">=3.10, <3.14"
|
|
9
|
+
|
|
10
|
+
maintainers = [
|
|
11
|
+
{name = "Kenny Mochizuki", email = "kenny@goldenm.com"},
|
|
12
|
+
{name = "Luis Reyes", email = "lreyes@goldenm.com"},
|
|
13
|
+
{name = "Kasen Li", email = "kli@goldenm.com"},
|
|
14
|
+
]
|
|
15
|
+
|
|
16
|
+
readme = "README.md"
|
|
17
|
+
|
|
18
|
+
license = {text = "MIT License"}
|
|
19
|
+
|
|
20
|
+
keywords = [
|
|
21
|
+
"sdk",
|
|
22
|
+
"goldenm",
|
|
23
|
+
"lcl",
|
|
24
|
+
"layrz compute language",
|
|
25
|
+
"layrz",
|
|
26
|
+
]
|
|
27
|
+
classifiers = [
|
|
28
|
+
"Programming Language :: Python :: 3",
|
|
29
|
+
"Programming Language :: Python :: 3.10",
|
|
30
|
+
"Programming Language :: Python :: 3.11",
|
|
31
|
+
"Programming Language :: Python :: 3.12",
|
|
32
|
+
"Programming Language :: Python :: 3.13",
|
|
33
|
+
]
|
|
34
|
+
dependencies = [
|
|
35
|
+
"requests",
|
|
36
|
+
"xlsxwriter",
|
|
37
|
+
"tzdata",
|
|
38
|
+
"pydantic>=2.10.6",
|
|
39
|
+
"typing-extensions>=4.10.0",
|
|
40
|
+
]
|
|
41
|
+
|
|
42
|
+
[project.urls]
|
|
43
|
+
Repository = "https://github.com/goldenm-software/layrz-sdk"
|
|
44
|
+
Changelog = "https://github.com/goldenm-software/layrz-sdk/blob/main/CHANGELOG.md"
|
|
45
|
+
|
|
46
|
+
[build-system]
|
|
47
|
+
requires = ["setuptools", "setuptools-scm"]
|
|
48
|
+
build-backend = "setuptools.build_meta"
|
|
49
|
+
|
|
50
|
+
[dependency-groups]
|
|
51
|
+
dev = [
|
|
52
|
+
"build>=1.2.2.post1",
|
|
53
|
+
"mypy>=1.15.0",
|
|
54
|
+
"pytest>=8.3.5",
|
|
55
|
+
"python-dotenv>=1.0.1",
|
|
56
|
+
"ruff>=0.11.0",
|
|
57
|
+
"twine>=6.1.0",
|
|
58
|
+
]
|
|
59
|
+
|
|
60
|
+
|
|
61
|
+
[tool.ruff]
|
|
62
|
+
indent-width = 2
|
|
63
|
+
line-length = 120
|
|
64
|
+
|
|
65
|
+
exclude = [".venv"]
|
|
66
|
+
|
|
67
|
+
[tool.ruff.lint]
|
|
68
|
+
ignore = [
|
|
69
|
+
"F401", # Unused import
|
|
70
|
+
"E701", # Multiple statements on one line
|
|
71
|
+
"TD003", # Missing issue link
|
|
72
|
+
"ANN401", # Any type annotation
|
|
73
|
+
]
|
|
74
|
+
|
|
75
|
+
select = [
|
|
76
|
+
"I", # isort
|
|
77
|
+
"E", "W", # pycodestyle
|
|
78
|
+
"F", # pyflakes
|
|
79
|
+
"B", # flakes8-bugbear
|
|
80
|
+
"TD", # flake8-todo
|
|
81
|
+
"DJ", # flake8-django
|
|
82
|
+
"DTZ", # flake8-datetimez
|
|
83
|
+
"T20", # flake8-print # En un futuro
|
|
84
|
+
"PYI", # flake8-pyi
|
|
85
|
+
"ANN", # flake8-annotations
|
|
86
|
+
]
|
|
87
|
+
|
|
88
|
+
[tool.ruff.format]
|
|
89
|
+
quote-style = "single"
|
|
90
|
+
indent-style = "space"
|
|
91
|
+
docstring-code-format = true
|
|
92
|
+
|
|
93
|
+
[tool.mypy]
|
|
94
|
+
python_version = "3.10"
|
|
95
|
+
strict = true
|
|
96
|
+
ignore_missing_imports = true
|
|
97
|
+
check_untyped_defs = true
|
|
98
|
+
disallow_untyped_defs = true
|
|
99
|
+
|
|
100
|
+
exclude = [
|
|
101
|
+
".*\\.venv",
|
|
102
|
+
".*\\.ruff_cache",
|
|
103
|
+
".*\\.mypy_cache",
|
|
104
|
+
]
|
layrz_sdk-3.1.12/CONTRIBUTING.md
DELETED
|
@@ -1,30 +0,0 @@
|
|
|
1
|
-
# Contributing
|
|
2
|
-
|
|
3
|
-
As an open source project, we welcomes contributions of many forms.
|
|
4
|
-
|
|
5
|
-
## To request a Merge Request
|
|
6
|
-
|
|
7
|
-
Please follow the next structure of your request:
|
|
8
|
-
|
|
9
|
-
### Title
|
|
10
|
-
|
|
11
|
-
A short description of your feature/fix
|
|
12
|
-
|
|
13
|
-
Also, add this prefix in the title according to the scenario:
|
|
14
|
-
|
|
15
|
-
| Prefix/Tag | Meaning |
|
|
16
|
-
|-|-|
|
|
17
|
-
| `feature/` | New feature, like new methods, classes, etc. |
|
|
18
|
-
| `fix/` | Bug fix or documentation related fix |
|
|
19
|
-
| `docs/` | Documentation related changes |
|
|
20
|
-
|
|
21
|
-
### Description
|
|
22
|
-
|
|
23
|
-
Explain your feature/fix request and why we should be approve.
|
|
24
|
-
|
|
25
|
-
Be explicit and precise with your submission, that helps us to review and approve your request.
|
|
26
|
-
|
|
27
|
-
## Code of Conduct
|
|
28
|
-
|
|
29
|
-
As a contributor, you can help us keep the Layrz community open and inclusive.
|
|
30
|
-
Please read and follow our code of conduct in `CODE_OF_CONDUCT.md`.
|
|
@@ -1,16 +0,0 @@
|
|
|
1
|
-
from collections.abc import Callable
|
|
2
|
-
|
|
3
|
-
from pydantic import BaseModel, Field
|
|
4
|
-
from xlsxwriter.worksheet import Worksheet
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
class CustomReportPage(BaseModel):
|
|
8
|
-
"""
|
|
9
|
-
Custom report page
|
|
10
|
-
Basically it's a wrapper of the `xlswriter` worksheet that uses a function to construct the page
|
|
11
|
-
"""
|
|
12
|
-
|
|
13
|
-
name: str = Field(description='Name of the page. Length should be less than 60 characters')
|
|
14
|
-
builder: Callable[[Worksheet], None] = Field(
|
|
15
|
-
description='Function to build the page. The only argument is the worksheet object',
|
|
16
|
-
)
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|