summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCoprDistGit <infra@openeuler.org>2023-05-05 12:41:44 +0000
committerCoprDistGit <infra@openeuler.org>2023-05-05 12:41:44 +0000
commitc54b12783c30b187cd37cc59fb6604023cf136c0 (patch)
tree600fdf2936db0d2b1393a199fcf9aae7ac285eb5
parent947ebc8ba74d1f6a5ee6415f10b5f68d00d00bd4 (diff)
automatic import of python-arcor2openeuler20.03
-rw-r--r--.gitignore1
-rw-r--r--python-arcor2.spec1627
-rw-r--r--sources1
3 files changed, 1629 insertions, 0 deletions
diff --git a/.gitignore b/.gitignore
index e69de29..c7ba3bb 100644
--- a/.gitignore
+++ b/.gitignore
@@ -0,0 +1 @@
+/arcor2-1.0.0.tar.gz
diff --git a/python-arcor2.spec b/python-arcor2.spec
new file mode 100644
index 0000000..8cf5b8c
--- /dev/null
+++ b/python-arcor2.spec
@@ -0,0 +1,1627 @@
+%global _empty_manifest_terminate_build 0
+Name: python-arcor2
+Version: 1.0.0
+Release: 1
+Summary: ARCOR2 base library
+License: LGPL
+URL: https://pypi.org/project/arcor2/
+Source0: https://mirrors.nju.edu.cn/pypi/web/packages/cc/f1/1cff431da7275cb6b717dda28e3c7ef537dc52908c140f2549c681148f29/arcor2-1.0.0.tar.gz
+BuildArch: noarch
+
+Requires: python3-Flask
+Requires: python3-Pillow
+Requires: python3-aiologger
+Requires: python3-apispec-webframeworks
+Requires: python3-apispec[yaml]
+Requires: python3-autopep8
+Requires: python3-colorlog
+Requires: python3-dataclasses-jsonschema[apispec,fast-dateparsing,fast-uuid,fast-validation]
+Requires: python3-fastuuid
+Requires: python3-flask-swagger-ui
+Requires: python3-flask-cors
+Requires: python3-numpy-quaternion[numba,scipy]
+Requires: python3-numpy
+Requires: python3-opencv-contrib-python
+Requires: python3-orjson
+Requires: python3-packaging
+Requires: python3-pyhumps
+Requires: python3-dateutil
+Requires: python3-requests
+Requires: python3-typing-inspect
+Requires: python3-urdfpy
+Requires: python3-websockets
+
+%description
+# arcor2
+# Changelog
+
+The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
+
+## [1.0.0] - 2023-02-14
+
+### Changed
+
+- Updated dependencies.
+- Compatibility with the Project service 1.0.0.
+ - `Mesh` dataclass: `data_id` changed to `asset_id`.
+ - Updated client (some paths were changed).
+
+### Added
+
+- Method `start` from the Scene service client now allows to specify a timeout.
+
+## [0.26.0] - 2022-12-12
+
+### Changed
+
+- Optional property `end_effector_id` added to `ProjectRobotJoints`.
+
+## [0.25.0] - 2022-10-28
+
+### Changed
+
+- Switched to Python 3.10, updated dependencies.
+- Removed unused `children` property from `SceneObject`.
+- Removed unused assets-related functions from Project service client.
+
+## [0.24.2] - 2022-08-29
+
+### Changed
+
+- REST client updated, so it is possible to specify a filename when, e.g., uploading a file to the Project service.
+
+## [0.24.1] - 2022-08-17
+
+### Changed
+
+- Target REST endpoints for `arcor2.clients.scene_service` updated to match new API convention.
+ - `/collisions/{model_type}/{model_id}` changed to `/collisions/{model_type}`, `model_id` moved to request
+ parameters as `{model_type}Id`.
+ - `/transforms/{transform_id}/local-pose` changed to `/transforms/{transform_id}/pose/local`.
+ - `/transforms/{transform_id}/world-pose` changed to `/transforms/{transform_id}/pose/world`.
+
+
+## [0.24.0] - 2022-07-08
+
+### Changed
+
+- **BREAKING**: `data.common.WebApiError` is now JSON based exception.
+ - Property `errors` was removed.
+ - New properties `type`, `description` and optional `content`.
+
+- **BREAKING**: `flask.FlaskException` class updated.
+ - `FlaskException` does no longer accept message and error code, but only `message` and optional `context`.
+ - New `service` and `description` properties should be overridden by subclasses.
+ - Exception instances are now convertible to JSON.
+
+- **BREAKING**: Flask API error handlers return 500 error code for any error.
+ `WebApiError` JSON object is supplied in response body.
+
+- **BREAKING** : `rest.WebApiException`, `rest.RestHttpException` class gone. `WebApiError` and
+ `RestException` are raised instead. No HTTP code is supplied as the only possible error code is 500.
+
+- **BREAKING** : `scene_service` client changed.
+ - `world_pose` now call `.../world-pose` instead of `.../worldPose`.
+ - `local_pose` now call `.../local-pose` instead of `.../localPose`.
+ - `line_check` now call `.../line-safe` instead of `.../lineSafe`.
+ - `upsert_collision` model id moved from query parameters to path.
+
+
+### Added
+- New `WebApiErrorFactory` class was implemented to generate service specific
+ `WebApiError` schemas for swagger documentation.
+
+- `flask.run_app` now accept optional `dependencies` argument.
+
+## [0.23.1] - 2022-02-17
+
+### Added
+
+- Simple collision checking.
+ - Related dataclasses were added.
+ - New function in `scene_service` client.
+
+## [0.23.0] - 2022-01-25
+
+### Changed
+
+- **BREAKING**: `ActionStateBefore` event updated.
+ - Properties `action_id` and `parameters` are now optional.
+ - New optional property `action_point_ids`.
+- Switched to Python 3.9, updated dependencies.
+
+## [0.22.0] - 2021-10-25
+
+### Changed
+
+- New abstract base class `VirtualCollisionObject`.
+ - Meant as a base for 'dumb' collision objects, with primitive models, without any functionality, e.g. for safety 'walls' around the cell.
+- `ActionMetadata` updated.
+ - Removed useless properties (`blocking`, `blackbox`).
+ - Added a new property `hidden` (UIs shall silently ignore those actions).
+- Dropped support for `RelativePose` action parameter type.
+- Handle all errors when importing stuff (`import_type_def`).
+ - This is needed for instance in case of obsolete ObjectTypes.
+ - ...when e.g. parameters of `ActionMetadata` were changed.
+ - Otherwise outdated OT might raise `TypeError` or similar exceptions.
+- New (optional) properties added to `BareActionPoint` (compatibility with Project service 0.14.0 or newer).
+- Added `FlowActions` ObjectType, providing `is_first_pass` action which is useful to perform the initialization step.
+
+### Fixed
+
+- Action point transformations (reparenting).
+ - When AP1 from `object -> AP1 -> AP2` was made global, AP2 was not updated properly.
+ - When AP1 was made relative again, AP2 was again not updated.
+
+## [0.21.0] - 2021-09-07
+
+### Changed
+
+- Added `Robot` specific exception `KinematicsException`.
+ - So far used to give more precise error messages.
+- `ProjectParameter` now derives from `Parameter`.
+- `CachedScene` now caches ObjectTypes used in a scene.
+- Logs are now colored.
+- `Project` now has optional `project_objects_ids` property (not used at the moment).
+
+### Fixed
+
+- Make sure that `Pose` contain only floats.
+ - When any value is e.g. np.float64, `orjson` complains.
+ - Because of this, `to_dict` methods of `Position` and `Orientation` are overridden.
+- Typo in URL within `get_models` of `project_service` client.
+- Missing sleep in `wait_for` of `scene_service` client.
+
+## [0.20.0] - 2021-08-05
+
+### Changed
+
+- Object hierarchy modified.
+ - `GenericWithPose` now can't have a collision model.
+ - A new `CollisionObject` must have collision model.
+- `Robot` base class API changed.
+ - Parameter `linear` was added to `move_to_pose`.
+ - A robot not supporting linear movements should raise exception when `linear==True`.
+ - Parameter `include_gripper` was added to `robot_joints`.
+ - By default, the method should return only arm's joints.
+ - With the parameter set, the list should contain also gripper joints.
+ - This is needed for visualization of grippers.
+ - Makes only sense (so far) when gripper is part of URDF.
+- Scene/Project clients now log underlying error messages.
+
+### Fixed
+
+- `rest` module now encodes body data as utf-8.
+
+
+## [0.19.0] - 2021-07-29
+
+### Changed
+
+- Support for multi arm robots.
+ - New base class `MultiArmRobot`.
+ - Its methods have an additional `arm_id` parameter.
+ - There is a method to get arm IDs.
+ - Relevant ARServer RPCs were extended with `arm_id`.
+ - `ProjectRobotJoints` model now also contains `arm_id`.
+ - There is `DummyMultiArmRobot` ObjectType for testing purposes.
+- `CachedProject`: `constants` renamed to `parameters`.
+- `Generic`: `INIT_PRIORITY` removed as useless.
+- `GenericWithPose`: do not delete collision models in `cleanup`.
+ - Collision models are removed by the Scene service on `stop`.
+- Usage of `orjson` in `arcor2/json` and for dataclasses.
+ - 40% speedup for serialization.
+ - 80% speedup for deserialization.
+ - Tested on `Project` dataclass.
+- Compatibility with Project service 0.10.0.
+- Compatibility with Scene service 0.5.0.
+- Uploading of meshes associated to ObjectTypes.
+ - Parameter `file_to_upload` was added to `upload_def`.
+
+### Fixed
+
+- Correct default port for Project service (10000).
+
+## [0.18.0] - 2021-06-14
+
+### Changed
+- Modules `package` and `resources` moved to `arcor2_execution_data`.
+
+## [0.17.0] - 2021-06-11
+
+### Changed
+- Project service client updated to API version 0.8.0.
+- `ARCOR2_PERSISTENT_STORAGE_URL` renamed to `ARCOR2_PROJECT_SERVICE_URL`.
+- Dependencies updated.
+
+## [0.16.0] - 2021-05-21
+
+### Changed
+- Objects initialization order (`Resources`):
+ - Object initialization order can be set using class-level `INIT_PRIORITY` variable.
+ - The higher priority, the sooner are objects of that type initialized.
+ - Objects are initialized serially.
+- `CachedProject` has new methods to deal with hierarchy (`get_by_id`, `get_parent_id`, `childs`).
+- Project service client updated to be compatible with version 0.7.0.
+- Added a custom `json` module.
+ - Wraps the standard json module, so it might be easier to replace it in the future.
+ - Provides type annotations.
+ - Raises a custom exception based on `Arcor2Exception`.
+
+### Fixed
+- Handling of context manager arguments in `Resources`.
+
+## [0.15.0] - 2021-04-20
+
+### Changed
+- REST client now handles all codes >= 400 as errors.
+
+## [0.14.1] - 2021-04-19
+
+### Fixed
+- Save and import of ObjectType was randomly failing because of [race condition](https://docs.python.org/3.8/library/importlib.html#importlib.machinery.FileFinder).
+
+## [0.14.0] - 2021-03-30
+
+### Changed
+- Improved code for transforming poses.
+- Use monkey patching instead of custom released version of dataclasses_jsonschema.
+- Switched to builtin ast module instead of horast - much faster builds, etc.
+- Added states `Stopping` and `Pausing` to `PackageState.Data.StateEnum`.
+ - This is because it may take some time to pause or stop a package.
+ - Other operations (as e.g. resume) are almost instant.
+
+### Fixed
+- `Resources` are now not sending `KeyboardInterrupt` as event.
+- `import_type_def` now provides better error messages when import fails.
+- Save and import of ObjectType was randomly failing.
+
+## [0.13.0] - 2021-03-15
+
+### Changed
+- IDs (uuid) are now generated within the respective classes.
+ - If necessary, ID can be still provided from outside as before.
+ - IDs are prefixed so developers can easily check type of an object from its ID.
+ - Prefix always start with a character.
+
+### Fixed
+- Composite actions are now properly handled by the `@action` decorator.
+
+## [0.12.1] - 2021-03-08
+
+### Fixed
+- `Pose` parameter plugin fixed to generate correct code in a case when action on action point A uses orientation from action point B.
+
+## [0.12.0] - 2021-03-03
+
+### Fixed
+- Parameter plugins now return copy of the parameter in order to prevent changes in the project if the value is modified e.g. within an action.
+- Method `update_project_sources` of the Project service client was fixed.
+
+### Changed
+- Flask-based apps now don't log each API call by default.
+ - It can be turned on by setting `ARCOR2_REST_API_DEBUG`.
+- The `rest` module has a new exception type RestHttpException for getting HTTP error codes.
+- `is_valid_identifier` now behaves the same as `is_valid_type`, it does not insist on convention (PascalCase vs snake_case) and provides concrete error messages.
+- `Robot` API now has `safe` parameter.
+- `Robot` now has API for hand teaching mode.
+- Line length of generated code changed from 80 to 120.
+
+## [0.11.1] - 2021-02-09
+
+### Fixed
+- `@action` decorator fixed.
+- `KeyError` was raised when `an` parameter was not given to an action.
+- This only happened in the "manual" script writing scenario and when `patch_object_actions` was used.
+
+## [0.11.0] - 2021-02-08
+
+### Changed
+- Explicit action parameters.
+ - `Resources` class now do not need to deal with parameters.
+ - Update of ObjectTypes (all actions now have the mandatory `an` parameter).
+- `CurrentAction` removed, `ActionState` divided into `ActionStateBefore` and `ActionStateAfter`.
+- New module with shared code for Flask-based apps.
+- Updates of 3rd party dependencies.
+- WS server now logs too long RPCs.
+ - Max. duration could be configured using `ARCOR2_MAX_RPC_DURATION`.
+
+### Fixed
+- At a startup, the main script now checks if the scene is running before attempt to stop it.
+- `image_from_str` function fixed.
+
+## [0.10.0] - 2020-12-14
+
+### Changed
+- `action` decorator now handles outputs of actions.
+- `CachedProject` has new methods for handling project logic.
+- `ActionState` event now contains action results.
+- New built-in ObjectTypes `RandomActions`.
+- Parameter plugins slightly reworked, some new helper functions.
+- If a robot has URDF, it is zipped and uploaded to the Project service).
+ - ...as a mesh file, which is workaround for missing storage of URDF models.
+- Scene service client updated to support version 0.4.0.
+- New built-in abstract ObjectType `Camera`.
+- Initial support for loading of URDF files.
+- Some first tests for parameter plugins were added.
+
+## [0.9.2] - 2020-10-30
+
+### Fixed
+- `parse` function now also catches `ValueError` exception.
+- `check_object_type` now tries to parse whole module instead of just source of the class itself.
+
+### Changed
+- `Robot` base class now have methods for IK/FK.
+- It is possible to use `==` on `Position` instances.
+
+## [0.9.1] - 2020-10-19
+
+### Fixed
+- package_version was ignoring `package` argument
+
+## [0.9.0] - 2020-10-16
+
+### Changed
+- Scene client updated for Scene 0.3.0.
+- Exceptions refactored (BREAKING).
+ - Arcor2Exception no longer has `message` property
+ - There is a new package arcor2/exceptions.
+ - Clients using `handle` decorator now have specific error messages defined.
+ - Previously generated execution packages will become broken as `print_exception` function was moved
+- Loggers are now created using functions from `logging` module.
+- `rest` module rewritten (BREAKING).
+ - Now there is only one method `call` which takes http method as an argument.
+ - There is `ARCOR2_REST_DEBUG` environment variable. When set, debugging logs are turned on.
+
+### Fixed
+- JSON containing only boolean value was not handled properly by `arcor2.rest` module.
+
+
+## [0.8.0] - 2020-09-24
+### Changed
+- Reorganisation of the repository - switched to monorepo based on [Pants](https://www.pantsbuild.org/docs/welcome-to-pants). The code was divided into more packages (that can be separatelly relased) within one repository.
+- Tests now run on GitHub instead of CircleCi.
+- Unification of objects and services
+ - There is ```Generic``` base class for objects without pose, ```GenericWithPose``` for objects with pose and ```Robot``` class that should be base class for every robot.
+- Integration of scene service (0.2.0).
+- @action decorator is now added automatically in the run-time.
+- ```Orientation``` dataclass now performs quaternion normalization in ```__post_init__```.
+- ```Robot``` base class now has ```_move_lock``` mutex to ensure that only one move-action is called at the time.
+
+## [0.8.0rc2] - 2020-09-16
+
+## [0.8.0rc1] - 2020-09-15
+
+## [0.8.0b8] - 2020-08-21
+### Fixed
+- Some robot-related issues fixed
+
+## [0.8.0b7] - 2020-08-12
+### Changed
+- Scene service client: 'upsert_collision' now has optional 'mesh_parameters': parameter.
+
+## [0.8.0b6] - 2020-08-03
+### Changed
+- New logic representation
+- Unification of objects and services
+- Integration of scene service
+
+## [0.7.1] - 2020-07-15
+### Fixed
+- Fix of broken python package arcor2 0.7.0
+
+## [0.7.0] - 2020-07-15
+### Changed
+
+- ARServer: new RPC 'TemporaryPackage'
+- ARServer: RPC ObjectTypesChangedEvent renamed to ChangedObjectTypesEvent, now contains changed ObjectTypes meta instead of just type names
+- ARServer: ShowMainScreenEvent.
+- Package name added to PackageInfoEvent
+- ARServer now compares its API_VERSION with API_VERSION of the Execution.
+- ARServer: ShowMainScreenEvent will now not contain 'highlight' when sent to a newly connected UI.
+- AP can now have another AP as parent
+- rest: OptionalData now may contain list of primitive type.
+- Execution: PackageStateEvent now contains package_id
+- Execution: added 'executed' to PackageMeta
+
+## [0.6.0] - 2020-06-19
+### Changed
+
+- Build/Execution proxy: allow port change using env. var.
+- ARServer: RenameScene RPC now checks if scene name is unique and 'dry_run' works.
+- ARServer: ListScenes/ListProjects now contain 'modified'.
+- ARServer: DeleteObjectType RPC added.
+- @action decorator is now compatible with Windows.
+- Service class now has 'cleanup' method which is called when scene is closed or when script ends. Call of 'cleanup' can be disabled by 'export ARCOR_CLEANUP_SERVICES=False' - this is particularly useful when running the script manually again and again.
+- Cleanup method for ObjectTypes.
+
+## [0.5.1] - 2020-06-04
+### Fixed
+- ignoring check of return parameters
+- allowing list of strings as request body
+
+## [0.5.0] - 2020-06-01
+### Changed
+- ARServer container need to setup new env variable using docker-compose -> ARCOR2_DATA_PATH=/root/data
+- ListProjects RPC now gets projects in parallel.
+- dry_run parameter for selected RPCs
+- EEF pose/robot joints streaming
+- OpenScene, OpenProject, SceneClosed, ProjectClosed events.
+- Execution proxy: use persistent websocket connection.
+- SceneCollisionsEvent merged into PackageInfoEvent
+- ARServer: RPC to cancel action execution.
+- Execution package now contains package.json with its metadata. Execution service now supports renaming of packages.
+
+## [0.4.3] - 2020-05-22
+### Changed
+- added support for CORS
+
+## [0.4.2] - 2020-04-27
+### Fixed
+- Fix of functions to transform relative poses to absolute and vice versa
+
+## [0.4.1] - 2020-04-22
+### Added
+- New RPCs for getting robot joints and effector pose
+- New RPC to get IDs of EE and suctions
+- Added pivot enum for UpdateObjectPoseUsingRobot
+
+### Fixed
+- Fix of remove action RPC
+- Another fixes
+
+
+## [0.4.0] - 2020-04-17
+### Changed
+- Complete redesign of RPC for ARClients (AREditor atm)
+- Documentation of execution and build API
+- Support for project service 0.2.0
+- New and updated events
+- Enhanced error messages
+- Create (global) session to enable reuse of connections.
+
+## [0.3.0] - 2020-03-24
+### Changed
+- Renamed RobotJoints to ProjectRobotJoints and ModelTypeEnum to Model3dType
+- Added new services for Time and Logic related actons
+- Added boolean parameter plugin
+- Description, returns and origins fields marked as optional
+- New event - ActionResult
+- Separated script enabling discovery through UDP broadcast
+- Support for list params
+- Services and Action objects are now marked as disabled when some problem occured and error message is passed to GUI (previously such services/objects were ignored)
+- Services with no configuration are disabled
+
+## [0.2.1] - 2020-02-28
+### Fixed
+- Added compatibility with Project service v 0.1.1
+- Param values and defaults are strings now
+- min, max stored in extra as JSON string
+
+## [0.2.0] - 2020-02-20
+### Changed
+- ExecuteAction RPC.
+- Uuid for action object/point/action.
+- Execution proxy PUT method
+- ActionPoint class in execution package
+- Removed loop in main script, when hasLogic == false
+- Parameter values not send in currentAction event
+- ProjectState RESUMED removed
+- Execution: print out script output if not JSON.
+- Joint: rotation -> value
+
+
+## [0.1.7] - 2019-12-24
+### Fixed
+- Build: disable caching
+
+## [0.1.5] - 2019-12-22
+### Fixed
+- Parameter plugins
+
+## [0.1.4] - 2019-12-18
+### Fixed
+- Parameter of type relative_pose now accepts json string as value
+
+## [0.1.3] - 2019-12-18
+### Fixed
+- N/A
+
+## [0.1.2] - 2019-12-17
+### Fixed
+- bump docker version
+
+## [0.1.1] - 2019-12-17
+### Fixed
+- bump docker version
+
+## [0.1.1] - 2019-12-12
+### Fixed
+- N/A
+
+## [0.1.0] - 2019-12-12
+### Changed
+- Separation of services.
+
+
+%package -n python3-arcor2
+Summary: ARCOR2 base library
+Provides: python-arcor2
+BuildRequires: python3-devel
+BuildRequires: python3-setuptools
+BuildRequires: python3-pip
+%description -n python3-arcor2
+# arcor2
+# Changelog
+
+The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
+
+## [1.0.0] - 2023-02-14
+
+### Changed
+
+- Updated dependencies.
+- Compatibility with the Project service 1.0.0.
+ - `Mesh` dataclass: `data_id` changed to `asset_id`.
+ - Updated client (some paths were changed).
+
+### Added
+
+- Method `start` from the Scene service client now allows to specify a timeout.
+
+## [0.26.0] - 2022-12-12
+
+### Changed
+
+- Optional property `end_effector_id` added to `ProjectRobotJoints`.
+
+## [0.25.0] - 2022-10-28
+
+### Changed
+
+- Switched to Python 3.10, updated dependencies.
+- Removed unused `children` property from `SceneObject`.
+- Removed unused assets-related functions from Project service client.
+
+## [0.24.2] - 2022-08-29
+
+### Changed
+
+- REST client updated, so it is possible to specify a filename when, e.g., uploading a file to the Project service.
+
+## [0.24.1] - 2022-08-17
+
+### Changed
+
+- Target REST endpoints for `arcor2.clients.scene_service` updated to match new API convention.
+ - `/collisions/{model_type}/{model_id}` changed to `/collisions/{model_type}`, `model_id` moved to request
+ parameters as `{model_type}Id`.
+ - `/transforms/{transform_id}/local-pose` changed to `/transforms/{transform_id}/pose/local`.
+ - `/transforms/{transform_id}/world-pose` changed to `/transforms/{transform_id}/pose/world`.
+
+
+## [0.24.0] - 2022-07-08
+
+### Changed
+
+- **BREAKING**: `data.common.WebApiError` is now JSON based exception.
+ - Property `errors` was removed.
+ - New properties `type`, `description` and optional `content`.
+
+- **BREAKING**: `flask.FlaskException` class updated.
+ - `FlaskException` does no longer accept message and error code, but only `message` and optional `context`.
+ - New `service` and `description` properties should be overridden by subclasses.
+ - Exception instances are now convertible to JSON.
+
+- **BREAKING**: Flask API error handlers return 500 error code for any error.
+ `WebApiError` JSON object is supplied in response body.
+
+- **BREAKING** : `rest.WebApiException`, `rest.RestHttpException` class gone. `WebApiError` and
+ `RestException` are raised instead. No HTTP code is supplied as the only possible error code is 500.
+
+- **BREAKING** : `scene_service` client changed.
+ - `world_pose` now call `.../world-pose` instead of `.../worldPose`.
+ - `local_pose` now call `.../local-pose` instead of `.../localPose`.
+ - `line_check` now call `.../line-safe` instead of `.../lineSafe`.
+ - `upsert_collision` model id moved from query parameters to path.
+
+
+### Added
+- New `WebApiErrorFactory` class was implemented to generate service specific
+ `WebApiError` schemas for swagger documentation.
+
+- `flask.run_app` now accept optional `dependencies` argument.
+
+## [0.23.1] - 2022-02-17
+
+### Added
+
+- Simple collision checking.
+ - Related dataclasses were added.
+ - New function in `scene_service` client.
+
+## [0.23.0] - 2022-01-25
+
+### Changed
+
+- **BREAKING**: `ActionStateBefore` event updated.
+ - Properties `action_id` and `parameters` are now optional.
+ - New optional property `action_point_ids`.
+- Switched to Python 3.9, updated dependencies.
+
+## [0.22.0] - 2021-10-25
+
+### Changed
+
+- New abstract base class `VirtualCollisionObject`.
+ - Meant as a base for 'dumb' collision objects, with primitive models, without any functionality, e.g. for safety 'walls' around the cell.
+- `ActionMetadata` updated.
+ - Removed useless properties (`blocking`, `blackbox`).
+ - Added a new property `hidden` (UIs shall silently ignore those actions).
+- Dropped support for `RelativePose` action parameter type.
+- Handle all errors when importing stuff (`import_type_def`).
+ - This is needed for instance in case of obsolete ObjectTypes.
+ - ...when e.g. parameters of `ActionMetadata` were changed.
+ - Otherwise outdated OT might raise `TypeError` or similar exceptions.
+- New (optional) properties added to `BareActionPoint` (compatibility with Project service 0.14.0 or newer).
+- Added `FlowActions` ObjectType, providing `is_first_pass` action which is useful to perform the initialization step.
+
+### Fixed
+
+- Action point transformations (reparenting).
+ - When AP1 from `object -> AP1 -> AP2` was made global, AP2 was not updated properly.
+ - When AP1 was made relative again, AP2 was again not updated.
+
+## [0.21.0] - 2021-09-07
+
+### Changed
+
+- Added `Robot` specific exception `KinematicsException`.
+ - So far used to give more precise error messages.
+- `ProjectParameter` now derives from `Parameter`.
+- `CachedScene` now caches ObjectTypes used in a scene.
+- Logs are now colored.
+- `Project` now has optional `project_objects_ids` property (not used at the moment).
+
+### Fixed
+
+- Make sure that `Pose` contain only floats.
+ - When any value is e.g. np.float64, `orjson` complains.
+ - Because of this, `to_dict` methods of `Position` and `Orientation` are overridden.
+- Typo in URL within `get_models` of `project_service` client.
+- Missing sleep in `wait_for` of `scene_service` client.
+
+## [0.20.0] - 2021-08-05
+
+### Changed
+
+- Object hierarchy modified.
+ - `GenericWithPose` now can't have a collision model.
+ - A new `CollisionObject` must have collision model.
+- `Robot` base class API changed.
+ - Parameter `linear` was added to `move_to_pose`.
+ - A robot not supporting linear movements should raise exception when `linear==True`.
+ - Parameter `include_gripper` was added to `robot_joints`.
+ - By default, the method should return only arm's joints.
+ - With the parameter set, the list should contain also gripper joints.
+ - This is needed for visualization of grippers.
+ - Makes only sense (so far) when gripper is part of URDF.
+- Scene/Project clients now log underlying error messages.
+
+### Fixed
+
+- `rest` module now encodes body data as utf-8.
+
+
+## [0.19.0] - 2021-07-29
+
+### Changed
+
+- Support for multi arm robots.
+ - New base class `MultiArmRobot`.
+ - Its methods have an additional `arm_id` parameter.
+ - There is a method to get arm IDs.
+ - Relevant ARServer RPCs were extended with `arm_id`.
+ - `ProjectRobotJoints` model now also contains `arm_id`.
+ - There is `DummyMultiArmRobot` ObjectType for testing purposes.
+- `CachedProject`: `constants` renamed to `parameters`.
+- `Generic`: `INIT_PRIORITY` removed as useless.
+- `GenericWithPose`: do not delete collision models in `cleanup`.
+ - Collision models are removed by the Scene service on `stop`.
+- Usage of `orjson` in `arcor2/json` and for dataclasses.
+ - 40% speedup for serialization.
+ - 80% speedup for deserialization.
+ - Tested on `Project` dataclass.
+- Compatibility with Project service 0.10.0.
+- Compatibility with Scene service 0.5.0.
+- Uploading of meshes associated to ObjectTypes.
+ - Parameter `file_to_upload` was added to `upload_def`.
+
+### Fixed
+
+- Correct default port for Project service (10000).
+
+## [0.18.0] - 2021-06-14
+
+### Changed
+- Modules `package` and `resources` moved to `arcor2_execution_data`.
+
+## [0.17.0] - 2021-06-11
+
+### Changed
+- Project service client updated to API version 0.8.0.
+- `ARCOR2_PERSISTENT_STORAGE_URL` renamed to `ARCOR2_PROJECT_SERVICE_URL`.
+- Dependencies updated.
+
+## [0.16.0] - 2021-05-21
+
+### Changed
+- Objects initialization order (`Resources`):
+ - Object initialization order can be set using class-level `INIT_PRIORITY` variable.
+ - The higher priority, the sooner are objects of that type initialized.
+ - Objects are initialized serially.
+- `CachedProject` has new methods to deal with hierarchy (`get_by_id`, `get_parent_id`, `childs`).
+- Project service client updated to be compatible with version 0.7.0.
+- Added a custom `json` module.
+ - Wraps the standard json module, so it might be easier to replace it in the future.
+ - Provides type annotations.
+ - Raises a custom exception based on `Arcor2Exception`.
+
+### Fixed
+- Handling of context manager arguments in `Resources`.
+
+## [0.15.0] - 2021-04-20
+
+### Changed
+- REST client now handles all codes >= 400 as errors.
+
+## [0.14.1] - 2021-04-19
+
+### Fixed
+- Save and import of ObjectType was randomly failing because of [race condition](https://docs.python.org/3.8/library/importlib.html#importlib.machinery.FileFinder).
+
+## [0.14.0] - 2021-03-30
+
+### Changed
+- Improved code for transforming poses.
+- Use monkey patching instead of custom released version of dataclasses_jsonschema.
+- Switched to builtin ast module instead of horast - much faster builds, etc.
+- Added states `Stopping` and `Pausing` to `PackageState.Data.StateEnum`.
+ - This is because it may take some time to pause or stop a package.
+ - Other operations (as e.g. resume) are almost instant.
+
+### Fixed
+- `Resources` are now not sending `KeyboardInterrupt` as event.
+- `import_type_def` now provides better error messages when import fails.
+- Save and import of ObjectType was randomly failing.
+
+## [0.13.0] - 2021-03-15
+
+### Changed
+- IDs (uuid) are now generated within the respective classes.
+ - If necessary, ID can be still provided from outside as before.
+ - IDs are prefixed so developers can easily check type of an object from its ID.
+ - Prefix always start with a character.
+
+### Fixed
+- Composite actions are now properly handled by the `@action` decorator.
+
+## [0.12.1] - 2021-03-08
+
+### Fixed
+- `Pose` parameter plugin fixed to generate correct code in a case when action on action point A uses orientation from action point B.
+
+## [0.12.0] - 2021-03-03
+
+### Fixed
+- Parameter plugins now return copy of the parameter in order to prevent changes in the project if the value is modified e.g. within an action.
+- Method `update_project_sources` of the Project service client was fixed.
+
+### Changed
+- Flask-based apps now don't log each API call by default.
+ - It can be turned on by setting `ARCOR2_REST_API_DEBUG`.
+- The `rest` module has a new exception type RestHttpException for getting HTTP error codes.
+- `is_valid_identifier` now behaves the same as `is_valid_type`, it does not insist on convention (PascalCase vs snake_case) and provides concrete error messages.
+- `Robot` API now has `safe` parameter.
+- `Robot` now has API for hand teaching mode.
+- Line length of generated code changed from 80 to 120.
+
+## [0.11.1] - 2021-02-09
+
+### Fixed
+- `@action` decorator fixed.
+- `KeyError` was raised when `an` parameter was not given to an action.
+- This only happened in the "manual" script writing scenario and when `patch_object_actions` was used.
+
+## [0.11.0] - 2021-02-08
+
+### Changed
+- Explicit action parameters.
+ - `Resources` class now do not need to deal with parameters.
+ - Update of ObjectTypes (all actions now have the mandatory `an` parameter).
+- `CurrentAction` removed, `ActionState` divided into `ActionStateBefore` and `ActionStateAfter`.
+- New module with shared code for Flask-based apps.
+- Updates of 3rd party dependencies.
+- WS server now logs too long RPCs.
+ - Max. duration could be configured using `ARCOR2_MAX_RPC_DURATION`.
+
+### Fixed
+- At a startup, the main script now checks if the scene is running before attempt to stop it.
+- `image_from_str` function fixed.
+
+## [0.10.0] - 2020-12-14
+
+### Changed
+- `action` decorator now handles outputs of actions.
+- `CachedProject` has new methods for handling project logic.
+- `ActionState` event now contains action results.
+- New built-in ObjectTypes `RandomActions`.
+- Parameter plugins slightly reworked, some new helper functions.
+- If a robot has URDF, it is zipped and uploaded to the Project service).
+ - ...as a mesh file, which is workaround for missing storage of URDF models.
+- Scene service client updated to support version 0.4.0.
+- New built-in abstract ObjectType `Camera`.
+- Initial support for loading of URDF files.
+- Some first tests for parameter plugins were added.
+
+## [0.9.2] - 2020-10-30
+
+### Fixed
+- `parse` function now also catches `ValueError` exception.
+- `check_object_type` now tries to parse whole module instead of just source of the class itself.
+
+### Changed
+- `Robot` base class now have methods for IK/FK.
+- It is possible to use `==` on `Position` instances.
+
+## [0.9.1] - 2020-10-19
+
+### Fixed
+- package_version was ignoring `package` argument
+
+## [0.9.0] - 2020-10-16
+
+### Changed
+- Scene client updated for Scene 0.3.0.
+- Exceptions refactored (BREAKING).
+ - Arcor2Exception no longer has `message` property
+ - There is a new package arcor2/exceptions.
+ - Clients using `handle` decorator now have specific error messages defined.
+ - Previously generated execution packages will become broken as `print_exception` function was moved
+- Loggers are now created using functions from `logging` module.
+- `rest` module rewritten (BREAKING).
+ - Now there is only one method `call` which takes http method as an argument.
+ - There is `ARCOR2_REST_DEBUG` environment variable. When set, debugging logs are turned on.
+
+### Fixed
+- JSON containing only boolean value was not handled properly by `arcor2.rest` module.
+
+
+## [0.8.0] - 2020-09-24
+### Changed
+- Reorganisation of the repository - switched to monorepo based on [Pants](https://www.pantsbuild.org/docs/welcome-to-pants). The code was divided into more packages (that can be separatelly relased) within one repository.
+- Tests now run on GitHub instead of CircleCi.
+- Unification of objects and services
+ - There is ```Generic``` base class for objects without pose, ```GenericWithPose``` for objects with pose and ```Robot``` class that should be base class for every robot.
+- Integration of scene service (0.2.0).
+- @action decorator is now added automatically in the run-time.
+- ```Orientation``` dataclass now performs quaternion normalization in ```__post_init__```.
+- ```Robot``` base class now has ```_move_lock``` mutex to ensure that only one move-action is called at the time.
+
+## [0.8.0rc2] - 2020-09-16
+
+## [0.8.0rc1] - 2020-09-15
+
+## [0.8.0b8] - 2020-08-21
+### Fixed
+- Some robot-related issues fixed
+
+## [0.8.0b7] - 2020-08-12
+### Changed
+- Scene service client: 'upsert_collision' now has optional 'mesh_parameters': parameter.
+
+## [0.8.0b6] - 2020-08-03
+### Changed
+- New logic representation
+- Unification of objects and services
+- Integration of scene service
+
+## [0.7.1] - 2020-07-15
+### Fixed
+- Fix of broken python package arcor2 0.7.0
+
+## [0.7.0] - 2020-07-15
+### Changed
+
+- ARServer: new RPC 'TemporaryPackage'
+- ARServer: RPC ObjectTypesChangedEvent renamed to ChangedObjectTypesEvent, now contains changed ObjectTypes meta instead of just type names
+- ARServer: ShowMainScreenEvent.
+- Package name added to PackageInfoEvent
+- ARServer now compares its API_VERSION with API_VERSION of the Execution.
+- ARServer: ShowMainScreenEvent will now not contain 'highlight' when sent to a newly connected UI.
+- AP can now have another AP as parent
+- rest: OptionalData now may contain list of primitive type.
+- Execution: PackageStateEvent now contains package_id
+- Execution: added 'executed' to PackageMeta
+
+## [0.6.0] - 2020-06-19
+### Changed
+
+- Build/Execution proxy: allow port change using env. var.
+- ARServer: RenameScene RPC now checks if scene name is unique and 'dry_run' works.
+- ARServer: ListScenes/ListProjects now contain 'modified'.
+- ARServer: DeleteObjectType RPC added.
+- @action decorator is now compatible with Windows.
+- Service class now has 'cleanup' method which is called when scene is closed or when script ends. Call of 'cleanup' can be disabled by 'export ARCOR_CLEANUP_SERVICES=False' - this is particularly useful when running the script manually again and again.
+- Cleanup method for ObjectTypes.
+
+## [0.5.1] - 2020-06-04
+### Fixed
+- ignoring check of return parameters
+- allowing list of strings as request body
+
+## [0.5.0] - 2020-06-01
+### Changed
+- ARServer container need to setup new env variable using docker-compose -> ARCOR2_DATA_PATH=/root/data
+- ListProjects RPC now gets projects in parallel.
+- dry_run parameter for selected RPCs
+- EEF pose/robot joints streaming
+- OpenScene, OpenProject, SceneClosed, ProjectClosed events.
+- Execution proxy: use persistent websocket connection.
+- SceneCollisionsEvent merged into PackageInfoEvent
+- ARServer: RPC to cancel action execution.
+- Execution package now contains package.json with its metadata. Execution service now supports renaming of packages.
+
+## [0.4.3] - 2020-05-22
+### Changed
+- added support for CORS
+
+## [0.4.2] - 2020-04-27
+### Fixed
+- Fix of functions to transform relative poses to absolute and vice versa
+
+## [0.4.1] - 2020-04-22
+### Added
+- New RPCs for getting robot joints and effector pose
+- New RPC to get IDs of EE and suctions
+- Added pivot enum for UpdateObjectPoseUsingRobot
+
+### Fixed
+- Fix of remove action RPC
+- Another fixes
+
+
+## [0.4.0] - 2020-04-17
+### Changed
+- Complete redesign of RPC for ARClients (AREditor atm)
+- Documentation of execution and build API
+- Support for project service 0.2.0
+- New and updated events
+- Enhanced error messages
+- Create (global) session to enable reuse of connections.
+
+## [0.3.0] - 2020-03-24
+### Changed
+- Renamed RobotJoints to ProjectRobotJoints and ModelTypeEnum to Model3dType
+- Added new services for Time and Logic related actons
+- Added boolean parameter plugin
+- Description, returns and origins fields marked as optional
+- New event - ActionResult
+- Separated script enabling discovery through UDP broadcast
+- Support for list params
+- Services and Action objects are now marked as disabled when some problem occured and error message is passed to GUI (previously such services/objects were ignored)
+- Services with no configuration are disabled
+
+## [0.2.1] - 2020-02-28
+### Fixed
+- Added compatibility with Project service v 0.1.1
+- Param values and defaults are strings now
+- min, max stored in extra as JSON string
+
+## [0.2.0] - 2020-02-20
+### Changed
+- ExecuteAction RPC.
+- Uuid for action object/point/action.
+- Execution proxy PUT method
+- ActionPoint class in execution package
+- Removed loop in main script, when hasLogic == false
+- Parameter values not send in currentAction event
+- ProjectState RESUMED removed
+- Execution: print out script output if not JSON.
+- Joint: rotation -> value
+
+
+## [0.1.7] - 2019-12-24
+### Fixed
+- Build: disable caching
+
+## [0.1.5] - 2019-12-22
+### Fixed
+- Parameter plugins
+
+## [0.1.4] - 2019-12-18
+### Fixed
+- Parameter of type relative_pose now accepts json string as value
+
+## [0.1.3] - 2019-12-18
+### Fixed
+- N/A
+
+## [0.1.2] - 2019-12-17
+### Fixed
+- bump docker version
+
+## [0.1.1] - 2019-12-17
+### Fixed
+- bump docker version
+
+## [0.1.1] - 2019-12-12
+### Fixed
+- N/A
+
+## [0.1.0] - 2019-12-12
+### Changed
+- Separation of services.
+
+
+%package help
+Summary: Development documents and examples for arcor2
+Provides: python3-arcor2-doc
+%description help
+# arcor2
+# Changelog
+
+The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
+
+## [1.0.0] - 2023-02-14
+
+### Changed
+
+- Updated dependencies.
+- Compatibility with the Project service 1.0.0.
+ - `Mesh` dataclass: `data_id` changed to `asset_id`.
+ - Updated client (some paths were changed).
+
+### Added
+
+- Method `start` from the Scene service client now allows to specify a timeout.
+
+## [0.26.0] - 2022-12-12
+
+### Changed
+
+- Optional property `end_effector_id` added to `ProjectRobotJoints`.
+
+## [0.25.0] - 2022-10-28
+
+### Changed
+
+- Switched to Python 3.10, updated dependencies.
+- Removed unused `children` property from `SceneObject`.
+- Removed unused assets-related functions from Project service client.
+
+## [0.24.2] - 2022-08-29
+
+### Changed
+
+- REST client updated, so it is possible to specify a filename when, e.g., uploading a file to the Project service.
+
+## [0.24.1] - 2022-08-17
+
+### Changed
+
+- Target REST endpoints for `arcor2.clients.scene_service` updated to match new API convention.
+ - `/collisions/{model_type}/{model_id}` changed to `/collisions/{model_type}`, `model_id` moved to request
+ parameters as `{model_type}Id`.
+ - `/transforms/{transform_id}/local-pose` changed to `/transforms/{transform_id}/pose/local`.
+ - `/transforms/{transform_id}/world-pose` changed to `/transforms/{transform_id}/pose/world`.
+
+
+## [0.24.0] - 2022-07-08
+
+### Changed
+
+- **BREAKING**: `data.common.WebApiError` is now JSON based exception.
+ - Property `errors` was removed.
+ - New properties `type`, `description` and optional `content`.
+
+- **BREAKING**: `flask.FlaskException` class updated.
+ - `FlaskException` does no longer accept message and error code, but only `message` and optional `context`.
+ - New `service` and `description` properties should be overridden by subclasses.
+ - Exception instances are now convertible to JSON.
+
+- **BREAKING**: Flask API error handlers return 500 error code for any error.
+ `WebApiError` JSON object is supplied in response body.
+
+- **BREAKING** : `rest.WebApiException`, `rest.RestHttpException` class gone. `WebApiError` and
+ `RestException` are raised instead. No HTTP code is supplied as the only possible error code is 500.
+
+- **BREAKING** : `scene_service` client changed.
+ - `world_pose` now call `.../world-pose` instead of `.../worldPose`.
+ - `local_pose` now call `.../local-pose` instead of `.../localPose`.
+ - `line_check` now call `.../line-safe` instead of `.../lineSafe`.
+ - `upsert_collision` model id moved from query parameters to path.
+
+
+### Added
+- New `WebApiErrorFactory` class was implemented to generate service specific
+ `WebApiError` schemas for swagger documentation.
+
+- `flask.run_app` now accept optional `dependencies` argument.
+
+## [0.23.1] - 2022-02-17
+
+### Added
+
+- Simple collision checking.
+ - Related dataclasses were added.
+ - New function in `scene_service` client.
+
+## [0.23.0] - 2022-01-25
+
+### Changed
+
+- **BREAKING**: `ActionStateBefore` event updated.
+ - Properties `action_id` and `parameters` are now optional.
+ - New optional property `action_point_ids`.
+- Switched to Python 3.9, updated dependencies.
+
+## [0.22.0] - 2021-10-25
+
+### Changed
+
+- New abstract base class `VirtualCollisionObject`.
+ - Meant as a base for 'dumb' collision objects, with primitive models, without any functionality, e.g. for safety 'walls' around the cell.
+- `ActionMetadata` updated.
+ - Removed useless properties (`blocking`, `blackbox`).
+ - Added a new property `hidden` (UIs shall silently ignore those actions).
+- Dropped support for `RelativePose` action parameter type.
+- Handle all errors when importing stuff (`import_type_def`).
+ - This is needed for instance in case of obsolete ObjectTypes.
+ - ...when e.g. parameters of `ActionMetadata` were changed.
+ - Otherwise outdated OT might raise `TypeError` or similar exceptions.
+- New (optional) properties added to `BareActionPoint` (compatibility with Project service 0.14.0 or newer).
+- Added `FlowActions` ObjectType, providing `is_first_pass` action which is useful to perform the initialization step.
+
+### Fixed
+
+- Action point transformations (reparenting).
+ - When AP1 from `object -> AP1 -> AP2` was made global, AP2 was not updated properly.
+ - When AP1 was made relative again, AP2 was again not updated.
+
+## [0.21.0] - 2021-09-07
+
+### Changed
+
+- Added `Robot` specific exception `KinematicsException`.
+ - So far used to give more precise error messages.
+- `ProjectParameter` now derives from `Parameter`.
+- `CachedScene` now caches ObjectTypes used in a scene.
+- Logs are now colored.
+- `Project` now has optional `project_objects_ids` property (not used at the moment).
+
+### Fixed
+
+- Make sure that `Pose` contain only floats.
+ - When any value is e.g. np.float64, `orjson` complains.
+ - Because of this, `to_dict` methods of `Position` and `Orientation` are overridden.
+- Typo in URL within `get_models` of `project_service` client.
+- Missing sleep in `wait_for` of `scene_service` client.
+
+## [0.20.0] - 2021-08-05
+
+### Changed
+
+- Object hierarchy modified.
+ - `GenericWithPose` now can't have a collision model.
+ - A new `CollisionObject` must have collision model.
+- `Robot` base class API changed.
+ - Parameter `linear` was added to `move_to_pose`.
+ - A robot not supporting linear movements should raise exception when `linear==True`.
+ - Parameter `include_gripper` was added to `robot_joints`.
+ - By default, the method should return only arm's joints.
+ - With the parameter set, the list should contain also gripper joints.
+ - This is needed for visualization of grippers.
+ - Makes only sense (so far) when gripper is part of URDF.
+- Scene/Project clients now log underlying error messages.
+
+### Fixed
+
+- `rest` module now encodes body data as utf-8.
+
+
+## [0.19.0] - 2021-07-29
+
+### Changed
+
+- Support for multi arm robots.
+ - New base class `MultiArmRobot`.
+ - Its methods have an additional `arm_id` parameter.
+ - There is a method to get arm IDs.
+ - Relevant ARServer RPCs were extended with `arm_id`.
+ - `ProjectRobotJoints` model now also contains `arm_id`.
+ - There is `DummyMultiArmRobot` ObjectType for testing purposes.
+- `CachedProject`: `constants` renamed to `parameters`.
+- `Generic`: `INIT_PRIORITY` removed as useless.
+- `GenericWithPose`: do not delete collision models in `cleanup`.
+ - Collision models are removed by the Scene service on `stop`.
+- Usage of `orjson` in `arcor2/json` and for dataclasses.
+ - 40% speedup for serialization.
+ - 80% speedup for deserialization.
+ - Tested on `Project` dataclass.
+- Compatibility with Project service 0.10.0.
+- Compatibility with Scene service 0.5.0.
+- Uploading of meshes associated to ObjectTypes.
+ - Parameter `file_to_upload` was added to `upload_def`.
+
+### Fixed
+
+- Correct default port for Project service (10000).
+
+## [0.18.0] - 2021-06-14
+
+### Changed
+- Modules `package` and `resources` moved to `arcor2_execution_data`.
+
+## [0.17.0] - 2021-06-11
+
+### Changed
+- Project service client updated to API version 0.8.0.
+- `ARCOR2_PERSISTENT_STORAGE_URL` renamed to `ARCOR2_PROJECT_SERVICE_URL`.
+- Dependencies updated.
+
+## [0.16.0] - 2021-05-21
+
+### Changed
+- Objects initialization order (`Resources`):
+ - Object initialization order can be set using class-level `INIT_PRIORITY` variable.
+ - The higher priority, the sooner are objects of that type initialized.
+ - Objects are initialized serially.
+- `CachedProject` has new methods to deal with hierarchy (`get_by_id`, `get_parent_id`, `childs`).
+- Project service client updated to be compatible with version 0.7.0.
+- Added a custom `json` module.
+ - Wraps the standard json module, so it might be easier to replace it in the future.
+ - Provides type annotations.
+ - Raises a custom exception based on `Arcor2Exception`.
+
+### Fixed
+- Handling of context manager arguments in `Resources`.
+
+## [0.15.0] - 2021-04-20
+
+### Changed
+- REST client now handles all codes >= 400 as errors.
+
+## [0.14.1] - 2021-04-19
+
+### Fixed
+- Save and import of ObjectType was randomly failing because of [race condition](https://docs.python.org/3.8/library/importlib.html#importlib.machinery.FileFinder).
+
+## [0.14.0] - 2021-03-30
+
+### Changed
+- Improved code for transforming poses.
+- Use monkey patching instead of custom released version of dataclasses_jsonschema.
+- Switched to builtin ast module instead of horast - much faster builds, etc.
+- Added states `Stopping` and `Pausing` to `PackageState.Data.StateEnum`.
+ - This is because it may take some time to pause or stop a package.
+ - Other operations (as e.g. resume) are almost instant.
+
+### Fixed
+- `Resources` are now not sending `KeyboardInterrupt` as event.
+- `import_type_def` now provides better error messages when import fails.
+- Save and import of ObjectType was randomly failing.
+
+## [0.13.0] - 2021-03-15
+
+### Changed
+- IDs (uuid) are now generated within the respective classes.
+ - If necessary, ID can be still provided from outside as before.
+ - IDs are prefixed so developers can easily check type of an object from its ID.
+ - Prefix always start with a character.
+
+### Fixed
+- Composite actions are now properly handled by the `@action` decorator.
+
+## [0.12.1] - 2021-03-08
+
+### Fixed
+- `Pose` parameter plugin fixed to generate correct code in a case when action on action point A uses orientation from action point B.
+
+## [0.12.0] - 2021-03-03
+
+### Fixed
+- Parameter plugins now return copy of the parameter in order to prevent changes in the project if the value is modified e.g. within an action.
+- Method `update_project_sources` of the Project service client was fixed.
+
+### Changed
+- Flask-based apps now don't log each API call by default.
+ - It can be turned on by setting `ARCOR2_REST_API_DEBUG`.
+- The `rest` module has a new exception type RestHttpException for getting HTTP error codes.
+- `is_valid_identifier` now behaves the same as `is_valid_type`, it does not insist on convention (PascalCase vs snake_case) and provides concrete error messages.
+- `Robot` API now has `safe` parameter.
+- `Robot` now has API for hand teaching mode.
+- Line length of generated code changed from 80 to 120.
+
+## [0.11.1] - 2021-02-09
+
+### Fixed
+- `@action` decorator fixed.
+- `KeyError` was raised when `an` parameter was not given to an action.
+- This only happened in the "manual" script writing scenario and when `patch_object_actions` was used.
+
+## [0.11.0] - 2021-02-08
+
+### Changed
+- Explicit action parameters.
+ - `Resources` class now do not need to deal with parameters.
+ - Update of ObjectTypes (all actions now have the mandatory `an` parameter).
+- `CurrentAction` removed, `ActionState` divided into `ActionStateBefore` and `ActionStateAfter`.
+- New module with shared code for Flask-based apps.
+- Updates of 3rd party dependencies.
+- WS server now logs too long RPCs.
+ - Max. duration could be configured using `ARCOR2_MAX_RPC_DURATION`.
+
+### Fixed
+- At a startup, the main script now checks if the scene is running before attempt to stop it.
+- `image_from_str` function fixed.
+
+## [0.10.0] - 2020-12-14
+
+### Changed
+- `action` decorator now handles outputs of actions.
+- `CachedProject` has new methods for handling project logic.
+- `ActionState` event now contains action results.
+- New built-in ObjectTypes `RandomActions`.
+- Parameter plugins slightly reworked, some new helper functions.
+- If a robot has URDF, it is zipped and uploaded to the Project service).
+ - ...as a mesh file, which is workaround for missing storage of URDF models.
+- Scene service client updated to support version 0.4.0.
+- New built-in abstract ObjectType `Camera`.
+- Initial support for loading of URDF files.
+- Some first tests for parameter plugins were added.
+
+## [0.9.2] - 2020-10-30
+
+### Fixed
+- `parse` function now also catches `ValueError` exception.
+- `check_object_type` now tries to parse whole module instead of just source of the class itself.
+
+### Changed
+- `Robot` base class now have methods for IK/FK.
+- It is possible to use `==` on `Position` instances.
+
+## [0.9.1] - 2020-10-19
+
+### Fixed
+- package_version was ignoring `package` argument
+
+## [0.9.0] - 2020-10-16
+
+### Changed
+- Scene client updated for Scene 0.3.0.
+- Exceptions refactored (BREAKING).
+ - Arcor2Exception no longer has `message` property
+ - There is a new package arcor2/exceptions.
+ - Clients using `handle` decorator now have specific error messages defined.
+ - Previously generated execution packages will become broken as `print_exception` function was moved
+- Loggers are now created using functions from `logging` module.
+- `rest` module rewritten (BREAKING).
+ - Now there is only one method `call` which takes http method as an argument.
+ - There is `ARCOR2_REST_DEBUG` environment variable. When set, debugging logs are turned on.
+
+### Fixed
+- JSON containing only boolean value was not handled properly by `arcor2.rest` module.
+
+
+## [0.8.0] - 2020-09-24
+### Changed
+- Reorganisation of the repository - switched to monorepo based on [Pants](https://www.pantsbuild.org/docs/welcome-to-pants). The code was divided into more packages (that can be separatelly relased) within one repository.
+- Tests now run on GitHub instead of CircleCi.
+- Unification of objects and services
+ - There is ```Generic``` base class for objects without pose, ```GenericWithPose``` for objects with pose and ```Robot``` class that should be base class for every robot.
+- Integration of scene service (0.2.0).
+- @action decorator is now added automatically in the run-time.
+- ```Orientation``` dataclass now performs quaternion normalization in ```__post_init__```.
+- ```Robot``` base class now has ```_move_lock``` mutex to ensure that only one move-action is called at the time.
+
+## [0.8.0rc2] - 2020-09-16
+
+## [0.8.0rc1] - 2020-09-15
+
+## [0.8.0b8] - 2020-08-21
+### Fixed
+- Some robot-related issues fixed
+
+## [0.8.0b7] - 2020-08-12
+### Changed
+- Scene service client: 'upsert_collision' now has optional 'mesh_parameters': parameter.
+
+## [0.8.0b6] - 2020-08-03
+### Changed
+- New logic representation
+- Unification of objects and services
+- Integration of scene service
+
+## [0.7.1] - 2020-07-15
+### Fixed
+- Fix of broken python package arcor2 0.7.0
+
+## [0.7.0] - 2020-07-15
+### Changed
+
+- ARServer: new RPC 'TemporaryPackage'
+- ARServer: RPC ObjectTypesChangedEvent renamed to ChangedObjectTypesEvent, now contains changed ObjectTypes meta instead of just type names
+- ARServer: ShowMainScreenEvent.
+- Package name added to PackageInfoEvent
+- ARServer now compares its API_VERSION with API_VERSION of the Execution.
+- ARServer: ShowMainScreenEvent will now not contain 'highlight' when sent to a newly connected UI.
+- AP can now have another AP as parent
+- rest: OptionalData now may contain list of primitive type.
+- Execution: PackageStateEvent now contains package_id
+- Execution: added 'executed' to PackageMeta
+
+## [0.6.0] - 2020-06-19
+### Changed
+
+- Build/Execution proxy: allow port change using env. var.
+- ARServer: RenameScene RPC now checks if scene name is unique and 'dry_run' works.
+- ARServer: ListScenes/ListProjects now contain 'modified'.
+- ARServer: DeleteObjectType RPC added.
+- @action decorator is now compatible with Windows.
+- Service class now has 'cleanup' method which is called when scene is closed or when script ends. Call of 'cleanup' can be disabled by 'export ARCOR_CLEANUP_SERVICES=False' - this is particularly useful when running the script manually again and again.
+- Cleanup method for ObjectTypes.
+
+## [0.5.1] - 2020-06-04
+### Fixed
+- ignoring check of return parameters
+- allowing list of strings as request body
+
+## [0.5.0] - 2020-06-01
+### Changed
+- ARServer container need to setup new env variable using docker-compose -> ARCOR2_DATA_PATH=/root/data
+- ListProjects RPC now gets projects in parallel.
+- dry_run parameter for selected RPCs
+- EEF pose/robot joints streaming
+- OpenScene, OpenProject, SceneClosed, ProjectClosed events.
+- Execution proxy: use persistent websocket connection.
+- SceneCollisionsEvent merged into PackageInfoEvent
+- ARServer: RPC to cancel action execution.
+- Execution package now contains package.json with its metadata. Execution service now supports renaming of packages.
+
+## [0.4.3] - 2020-05-22
+### Changed
+- added support for CORS
+
+## [0.4.2] - 2020-04-27
+### Fixed
+- Fix of functions to transform relative poses to absolute and vice versa
+
+## [0.4.1] - 2020-04-22
+### Added
+- New RPCs for getting robot joints and effector pose
+- New RPC to get IDs of EE and suctions
+- Added pivot enum for UpdateObjectPoseUsingRobot
+
+### Fixed
+- Fix of remove action RPC
+- Another fixes
+
+
+## [0.4.0] - 2020-04-17
+### Changed
+- Complete redesign of RPC for ARClients (AREditor atm)
+- Documentation of execution and build API
+- Support for project service 0.2.0
+- New and updated events
+- Enhanced error messages
+- Create (global) session to enable reuse of connections.
+
+## [0.3.0] - 2020-03-24
+### Changed
+- Renamed RobotJoints to ProjectRobotJoints and ModelTypeEnum to Model3dType
+- Added new services for Time and Logic related actons
+- Added boolean parameter plugin
+- Description, returns and origins fields marked as optional
+- New event - ActionResult
+- Separated script enabling discovery through UDP broadcast
+- Support for list params
+- Services and Action objects are now marked as disabled when some problem occured and error message is passed to GUI (previously such services/objects were ignored)
+- Services with no configuration are disabled
+
+## [0.2.1] - 2020-02-28
+### Fixed
+- Added compatibility with Project service v 0.1.1
+- Param values and defaults are strings now
+- min, max stored in extra as JSON string
+
+## [0.2.0] - 2020-02-20
+### Changed
+- ExecuteAction RPC.
+- Uuid for action object/point/action.
+- Execution proxy PUT method
+- ActionPoint class in execution package
+- Removed loop in main script, when hasLogic == false
+- Parameter values not send in currentAction event
+- ProjectState RESUMED removed
+- Execution: print out script output if not JSON.
+- Joint: rotation -> value
+
+
+## [0.1.7] - 2019-12-24
+### Fixed
+- Build: disable caching
+
+## [0.1.5] - 2019-12-22
+### Fixed
+- Parameter plugins
+
+## [0.1.4] - 2019-12-18
+### Fixed
+- Parameter of type relative_pose now accepts json string as value
+
+## [0.1.3] - 2019-12-18
+### Fixed
+- N/A
+
+## [0.1.2] - 2019-12-17
+### Fixed
+- bump docker version
+
+## [0.1.1] - 2019-12-17
+### Fixed
+- bump docker version
+
+## [0.1.1] - 2019-12-12
+### Fixed
+- N/A
+
+## [0.1.0] - 2019-12-12
+### Changed
+- Separation of services.
+
+
+%prep
+%autosetup -n arcor2-1.0.0
+
+%build
+%py3_build
+
+%install
+%py3_install
+install -d -m755 %{buildroot}/%{_pkgdocdir}
+if [ -d doc ]; then cp -arf doc %{buildroot}/%{_pkgdocdir}; fi
+if [ -d docs ]; then cp -arf docs %{buildroot}/%{_pkgdocdir}; fi
+if [ -d example ]; then cp -arf example %{buildroot}/%{_pkgdocdir}; fi
+if [ -d examples ]; then cp -arf examples %{buildroot}/%{_pkgdocdir}; fi
+pushd %{buildroot}
+if [ -d usr/lib ]; then
+ find usr/lib -type f -printf "/%h/%f\n" >> filelist.lst
+fi
+if [ -d usr/lib64 ]; then
+ find usr/lib64 -type f -printf "/%h/%f\n" >> filelist.lst
+fi
+if [ -d usr/bin ]; then
+ find usr/bin -type f -printf "/%h/%f\n" >> filelist.lst
+fi
+if [ -d usr/sbin ]; then
+ find usr/sbin -type f -printf "/%h/%f\n" >> filelist.lst
+fi
+touch doclist.lst
+if [ -d usr/share/man ]; then
+ find usr/share/man -type f -printf "/%h/%f.gz\n" >> doclist.lst
+fi
+popd
+mv %{buildroot}/filelist.lst .
+mv %{buildroot}/doclist.lst .
+
+%files -n python3-arcor2 -f filelist.lst
+%dir %{python3_sitelib}/*
+
+%files help -f doclist.lst
+%{_docdir}/*
+
+%changelog
+* Fri May 05 2023 Python_Bot <Python_Bot@openeuler.org> - 1.0.0-1
+- Package Spec generated
diff --git a/sources b/sources
new file mode 100644
index 0000000..fec3df5
--- /dev/null
+++ b/sources
@@ -0,0 +1 @@
+640a3ce013788d9ccad0df0fe0ce470f arcor2-1.0.0.tar.gz