Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

New Features #7

Merged
merged 121 commits into from
Jul 21, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
121 commits
Select commit Hold shift + click to select a range
31c99b7
update doc
Jun 7, 2024
7bf3c71
added observable to all props and reinstated Properties in depth sect…
Jun 8, 2024
1538a2c
support for TD for read-write multiple and all properties & observe p…
Jun 8, 2024
f131ffb
added github link in sphinx doc
Jun 9, 2024
0e3d3ae
update doc
Jun 9, 2024
9b42510
JSON schema validtor base classes added
Jun 10, 2024
f857912
updates to schema validators and bug fixes
Jun 12, 2024
9b15136
doc building bug fixes
Jun 12, 2024
fc5f3cd
argument schema validation added server side
Jun 13, 2024
822f686
JSON schema validator added to both client and server side, reflected…
Jun 14, 2024
10046ee
added examples readme file
Jun 14, 2024
0513bb6
doc gen bug fix
Jun 14, 2024
40e347f
removed dependency on fastjsonschema in schema_validators.py
Jun 14, 2024
a683ec4
removed dependency on fastjsonschema in schema_validators.py
Jun 14, 2024
6f3fd4d
moved events to descriptors due to increasing options
VigneshVSV Jun 15, 2024
e8abae3
bug fix class_member
VigneshVSV Jun 15, 2024
bfef681
added common arguments back to doc
VigneshVSV Jun 15, 2024
63cb8d7
update to setup files, env files etc.
VigneshVSV Jun 15, 2024
44e4058
common args file name in properties doc
VigneshVSV Jun 15, 2024
d77420d
change log added and readme title updated
VigneshVSV Jun 16, 2024
b054d42
props common arguments code file name changed
VigneshVSV Jun 16, 2024
ace8f01
class member and fget,fset doc updated
VigneshVSV Jun 16, 2024
d663dc6
class member __get__ optimization for parameters
VigneshVSV Jun 21, 2024
8881504
removed webdashboard namespace
VigneshVSV Jun 22, 2024
e949e70
added readme
VigneshVSV Jun 22, 2024
446f97e
moved doc to own repository
VigneshVSV Jun 22, 2024
9683e3a
removed system host submodule due to incompleteness and requirement t…
VigneshVSV Jun 22, 2024
0ba174f
bug fixes for observable events
VigneshVSV Jun 26, 2024
81658b9
update actions and event schema
VigneshVSV Jun 29, 2024
8ed9355
change add property in InstanceParameters
VigneshVSV Jun 29, 2024
fa17409
add links and schema definitions for exceptions
VigneshVSV Jun 29, 2024
3ad590c
update doc
VigneshVSV Jun 29, 2024
d8daa63
moved examples to submodule for readme file and quick view at reposit…
VigneshVSV Jun 29, 2024
1f16062
update readme
VigneshVSV Jun 29, 2024
f47fbe9
update readme
VigneshVSV Jun 29, 2024
7c5c821
update readme
VigneshVSV Jun 29, 2024
a824de7
bug fixes and improvements
VigneshVSV Jun 29, 2024
95cb6d1
update readme
VigneshVSV Jun 30, 2024
f822f4b
added funding info
VigneshVSV Jun 30, 2024
bab0244
moved funding file to .github folder
VigneshVSV Jun 30, 2024
2217d99
update readme
VigneshVSV Jun 30, 2024
bf90646
added funding info
VigneshVSV Jun 30, 2024
69dea4f
examples new commits
VigneshVSV Jun 30, 2024
101fd02
Update README.md
VigneshVSV Jul 1, 2024
fa4ee66
removed additional responses and schema definitions temporarily due t…
Jul 2, 2024
5f1f076
update readme
VigneshVSV Jul 6, 2024
74782d8
sync commit
VigneshVSV Jul 6, 2024
8ac0910
support for ParameterizedFunction as a possible action handler added
VigneshVSV Jul 6, 2024
3a81db0
basic tests on Thing base class
VigneshVSV Jul 7, 2024
0fcd3a3
make contributing simpler
VigneshVSV Jul 7, 2024
4f488af
making CONTRIBUTING simpler
VigneshVSV Jul 7, 2024
8098569
testing run and exit - TCP still not quitting
VigneshVSV Jul 7, 2024
eff3987
making contributing simpler
VigneshVSV Jul 7, 2024
6cf89c5
rename test guidelines
VigneshVSV Jul 7, 2024
abd8b9c
make contributing simple
VigneshVSV Jul 7, 2024
4bd41fd
links are not added, removed again
Jul 9, 2024
e4e12d8
TCP socket killer completed - test run_with_http_server in progress
VigneshVSV Jul 9, 2024
ea10584
making contributing easier
VigneshVSV Jul 9, 2024
63f1fba
update changelog to mention tests
VigneshVSV Jul 9, 2024
6ed833c
update README
Jul 10, 2024
6d7d127
Update README.md
VigneshVSV Jul 10, 2024
3c09285
Update README.md
VigneshVSV Jul 10, 2024
812dbcf
Update README.md
VigneshVSV Jul 10, 2024
09a0d13
Update README.md
VigneshVSV Jul 10, 2024
1e86f1a
update README
Jul 10, 2024
ac668ed
make contributing easier - fix typos
Jul 10, 2024
22b5fbe
new commits
Jul 10, 2024
3848f73
updates to test action to work correctly
VigneshVSV Jul 11, 2024
3447a37
update test_action with ParameterizedFunction
VigneshVSV Jul 11, 2024
8d9ab69
bug fixes for action tests
VigneshVSV Jul 12, 2024
f67094a
test property
VigneshVSV Jul 12, 2024
4248faa
update
VigneshVSV Jul 12, 2024
6bb21a9
remove maintainability status - not very clear what is the use of thi…
VigneshVSV Jul 13, 2024
002b804
set_properties method signature changed
VigneshVSV Jul 13, 2024
617f8ee
updates
VigneshVSV Jul 13, 2024
23ed606
improvements based on feedback from unit-tests
VigneshVSV Jul 13, 2024
5199acb
added RPC server quit method
VigneshVSV Jul 13, 2024
3a66db3
added subclass checking tool that does not raise TypeError
VigneshVSV Jul 13, 2024
c093f0d
event descriptor API change bug fixes
VigneshVSV Jul 13, 2024
cb349e6
ClassSelector subclass check errors reported more accurately
VigneshVSV Jul 13, 2024
c398e85
updates & bug fixes related to basic test database for property
VigneshVSV Jul 13, 2024
976e16a
basic test event, along with delay to connect to the publisher correctly
VigneshVSV Jul 13, 2024
62e6e71
added locking mechanisms for multithreaded and multi-asyncio with sam…
VigneshVSV Jul 13, 2024
c401c9a
HTTP server can now be stopped and HTTP server tested
VigneshVSV Jul 13, 2024
b239763
updates
VigneshVSV Jul 13, 2024
abde47f
updates
VigneshVSV Jul 13, 2024
d3630b2
updates
VigneshVSV Jul 13, 2024
8451679
tests working
VigneshVSV Jul 13, 2024
2622208
uncommented RPC tests as they work
VigneshVSV Jul 13, 2024
00c3023
update README
VigneshVSV Jul 13, 2024
4da8026
added TCP to mixin as well just for sake of completeness
VigneshVSV Jul 14, 2024
7a512c5
update readme
Jul 16, 2024
b23dd76
edit contributing information
Jul 18, 2024
8770500
new commits
Jul 18, 2024
0204dea
Update README.md
VigneshVSV Jul 19, 2024
07b0df8
Update README.md
VigneshVSV Jul 19, 2024
fe37029
add code of conduct
VigneshVSV Jul 19, 2024
c979f21
Update README.md
VigneshVSV Jul 19, 2024
60d6e00
Update README.md
VigneshVSV Jul 19, 2024
7a658d8
Update README.md
VigneshVSV Jul 20, 2024
621e3bf
test basic HTTP server
VigneshVSV Jul 20, 2024
b892441
pending tasks are resolved by the external message listener before qu…
VigneshVSV Jul 20, 2024
f4b5478
improve server stop logic
VigneshVSV Jul 20, 2024
836b59e
general improvements
VigneshVSV Jul 20, 2024
90be86c
INPROC server kill marginally better and works
VigneshVSV Jul 20, 2024
172d123
test workflow
VigneshVSV Jul 20, 2024
a5f2aec
fix conflicts readme
VigneshVSV Jul 20, 2024
29bf2e2
fix argon2-cffi in requirements file
VigneshVSV Jul 20, 2024
abef1d3
Update test.yml
VigneshVSV Jul 20, 2024
beb7066
Update test.yml
VigneshVSV Jul 20, 2024
106ce72
update customized requirements for tests including numpy
VigneshVSV Jul 20, 2024
f448461
removed blocking test for HTTP server to make action complete
VigneshVSV Jul 20, 2024
04b3b33
codecov badge added
VigneshVSV Jul 20, 2024
dad9b17
badge edit
VigneshVSV Jul 20, 2024
484fa99
Create python-publish-testpypi.yml
VigneshVSV Jul 20, 2024
9da5c30
fix typo python-publish-testpypi.yml
VigneshVSV Jul 20, 2024
67b262a
update
VigneshVSV Jul 20, 2024
163fd46
publish to PyPI workflow added
VigneshVSV Jul 20, 2024
c76bf59
bug fix event API to generate GUI resources, corrected associated tests
VigneshVSV Jul 20, 2024
0498bc0
content type brought back in TD although default
VigneshVSV Jul 20, 2024
a204fe4
Update CHANGELOG for v0.2.1
VigneshVSV Jul 20, 2024
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 3 additions & 0 deletions .github/FUNDING.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
# FUNDING.yml

github: VigneshVSV
39 changes: 39 additions & 0 deletions .github/workflows/python-publish-pypi.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,39 @@
# This workflow will upload a Python Package using Twine when a release is created
# For more information see: https://docs.github.com/en/actions/automating-builds-and-tests/building-and-testing-python#publishing-to-package-registries

# This workflow uses actions that are not certified by GitHub.
# They are provided by a third-party and are governed by
# separate terms of service, privacy policy, and support
# documentation.

name: Upload Python Package To Actual PyPI

on:
workflow_dispatch:

permissions:
contents: read

jobs:
deploy:
runs-on: ubuntu-latest
permissions:
id-token: write # IMPORTANT: mandatory for trusted publishing
steps:
- uses: actions/checkout@v4
- name: Set up Python
uses: actions/setup-python@v3
with:
python-version: 3.11
- name: Install dependencies
run: |
python -m pip install --upgrade pip
pip install build
- name: Build package
run: python -m build --wheel
- name: Publish package
uses: pypa/gh-action-pypi-publish@release/v1
with:
user: __token__
password: ${{ secrets.PYPI_API_TOKEN }}

39 changes: 39 additions & 0 deletions .github/workflows/python-publish-testpypi.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,39 @@
# This workflow will upload a Python Package using Twine when a release is created
# For more information see: https://docs.github.com/en/actions/automating-builds-and-tests/building-and-testing-python#publishing-to-package-registries

# This workflow uses actions that are not certified by GitHub.
# They are provided by a third-party and are governed by
# separate terms of service, privacy policy, and support
# documentation.

name: Upload Python Package To Test PyPI

on:
workflow_dispatch:

permissions:
contents: read

jobs:
deploy:
runs-on: ubuntu-latest
permissions:
id-token: write # IMPORTANT: mandatory for trusted publishing
steps:
- uses: actions/checkout@v4
- name: Set up Python
uses: actions/setup-python@v3
with:
python-version: 3.11
- name: Install dependencies
run: |
python -m pip install --upgrade pip
pip install build
- name: Build package
run: python -m build --wheel
- name: Publish package
uses: pypa/gh-action-pypi-publish@release/v1
with:
user: __token__
password: ${{ secrets.TEST_PYPI_API_TOKEN }}
repository-url: https://test.pypi.org/legacy/
40 changes: 40 additions & 0 deletions .github/workflows/test.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,40 @@
name: Python Unit Tests

on:
workflow_dispatch:
push:
branches:
- main
pull_request:
branches:
- main


jobs:
test:
runs-on: ubuntu-latest
steps:
- name: Checkout code
uses: actions/checkout@v4

- name: Set up Python
uses: actions/setup-python@v3
with:
python-version: 3.11

- name: Install dependencies
run: pip install -r tests/requirements.txt

- name: Run unit tests and generate coverage report
run: |
pip install coverage
coverage run -m unittest discover -s tests -p 'test_*.py'
coverage report -m

- name: Upload coverage report to codecov
uses: codecov/codecov-action@v4.0.1
with:
token: ${{ secrets.CODECOV_TOKEN }}



4 changes: 3 additions & 1 deletion .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,9 @@ old/
doc/build
doc/source/generated
extra-packages

tests/test-rpc-results.txt
tests/run-unittest.bat
# comment tests until good organisation comes about

# vs-code
.vscode/
Expand Down
9 changes: 6 additions & 3 deletions .gitmodules
Original file line number Diff line number Diff line change
@@ -1,3 +1,6 @@
[submodule "hololinked/system_host/assets/hololinked-server-swagger-api"]
path = hololinked/system_host/assets/hololinked-server-swagger-api
url = https://github.com/VigneshVSV/hololinked-server-swagger-api.git
[submodule "examples"]
path = examples
url = https://github.com/VigneshVSV/hololinked-examples.git
[submodule "doc"]
path = doc
url = https://github.com/VigneshVSV/hololinked-docs.git
32 changes: 0 additions & 32 deletions .readthedocs.yaml

This file was deleted.

36 changes: 36 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,36 @@
# Changelog

All notable changes to this project will be documented in this file.

The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).

## [Unreleased]

### Security
- cookie auth & its specification in TD

## [v0.2.1] - 2024-07-21

### Added
- properties are now "observable" and push change events when read or written & value has changed
- input & output JSON schema can be specified for actions, where input schema is used for validation of arguments
- TD has read/write properties' forms at thing level, event data schema
- change log
- some unit tests

### Changed
- events are to specified as descriptors and are not allowed as instance attributes. Specify at class level to
automatically obtain a instance specific event.

### Fixed
- ``class_member`` argument for properties respected more accurately

## [v0.1.2] - 2024-06-06

### Added
- first public release to pip, docs are the best source to document this release. Checkout commit
[04b75a73c28cab298eefa30746bbb0e06221b81c] and build docs if at all necessary.



133 changes: 133 additions & 0 deletions CODE_OF_CONDUCT.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,133 @@
# Contributor Covenant Code of Conduct

## Our Pledge

We as members, contributors, and leaders pledge to make participation in our
community a harassment-free experience for everyone, regardless of age, body
size, visible or invisible disability, ethnicity, sex characteristics, gender
identity and expression, level of experience, education, socio-economic status,
nationality, personal appearance, race, caste, color, religion, or sexual
identity and orientation.

We pledge to act and interact in ways that contribute to an open, welcoming,
diverse, inclusive, and healthy community.

The document states the plural pronoun "We" or "Community Leaders" etc.,
however, currently, I, Vignesh Vaidyanathan, enforce the code of conduct

## Our Standards

Examples of behavior that contributes to a positive environment for our
community include:

* Demonstrating empathy and kindness toward other people
* Being respectful of differing opinions, viewpoints, and experiences
* Giving and gracefully accepting constructive feedback
* Accepting responsibility and apologizing to those affected by our mistakes,
and learning from the experience
* Focusing on what is best not just for us as individuals, but for the overall
community

Examples of unacceptable behavior include:

* The use of sexualized language or imagery, and sexual attention or advances of
any kind
* Trolling, insulting or derogatory comments, and personal or political attacks
* Public or private harassment
* Publishing others' private information, such as a physical or email address,
without their explicit permission
* Other conduct which could reasonably be considered inappropriate in a
professional setting

## Enforcement Responsibilities

Community leaders are responsible for clarifying and enforcing our standards of
acceptable behavior and will take appropriate and fair corrective action in
response to any behavior that they deem inappropriate, threatening, offensive,
or harmful.

Community leaders have the right and responsibility to remove, edit, or reject
comments, commits, code, wiki edits, issues, discussions and other contributions
that are not aligned to this Code of Conduct, and will communicate reasons for moderation
decisions when appropriate.

## Scope

This Code of Conduct currently applies within all contributions made to this repository in all sections
of github (including discussions) & associated repositories like hololinked-examples & those hosted publicly under
the Vignesh Vaidyanathan's space.

## Enforcement

Instances of abusive, harassing, or otherwise unacceptable behavior may be
reported to the community leaders responsible for enforcement at
vignesh.vaidyanathan@hololinked.dev.
All complaints will be reviewed and investigated promptly and fairly.

All community leaders are obligated to respect the privacy and security of the
reporter of any incident.

## Enforcement Guidelines

Community leaders will follow these Community Impact Guidelines in determining
the consequences for any action they deem in violation of this Code of Conduct:

### 1. Correction

**Community Impact**: Use of inappropriate language or other behavior deemed
unprofessional or unwelcome in the community.

**Consequence**: A private, written warning from community leaders, providing
clarity around the nature of the violation and an explanation of why the
behavior was inappropriate. A public apology may be requested.

### 2. Warning

**Community Impact**: A violation through a single incident or series of
actions.

**Consequence**: A warning with consequences for continued behavior. No
interaction with the people involved, including unsolicited interaction with
those enforcing the Code of Conduct, for a specified period of time. This
includes avoiding interactions in community spaces as well as external channels
like social media. Violating these terms may lead to a temporary or permanent
ban.

### 3. Temporary Ban

**Community Impact**: A serious violation of community standards, including
sustained inappropriate behavior.

**Consequence**: A temporary ban from any sort of interaction or public
communication with the community for a specified period of time. No public or
private interaction with the people involved, including unsolicited interaction
with those enforcing the Code of Conduct, is allowed during this period.
Violating these terms may lead to a permanent ban.

### 4. Permanent Ban

**Community Impact**: Demonstrating a pattern of violation of community
standards, including sustained inappropriate behavior, harassment of an
individual, or aggression toward or disparagement of classes of individuals.

**Consequence**: A permanent ban from any sort of public interaction within the
community.

## Attribution

This Code of Conduct is adapted from the [Contributor Covenant][homepage],
version 2.1, available at
[https://www.contributor-covenant.org/version/2/1/code_of_conduct.html][v2.1].

Community Impact Guidelines were inspired by
[Mozilla's code of conduct enforcement ladder][Mozilla CoC].

For answers to common questions about this code of conduct, see the FAQ at
[https://www.contributor-covenant.org/faq][FAQ]. Translations are available at
[https://www.contributor-covenant.org/translations][translations].

[homepage]: https://www.contributor-covenant.org
[v2.1]: https://www.contributor-covenant.org/version/2/1/code_of_conduct.html
[Mozilla CoC]: https://github.com/mozilla/diversity
[FAQ]: https://www.contributor-covenant.org/faq
[translations]: https://www.contributor-covenant.org/translations
Loading
Loading