Commit Graph

128 Commits

Author SHA1 Message Date
Jedd Morgan 2b583fd822 Added unit scaling functions in units.py 2023-09-06 12:34:16 +01:00
Jedd Morgan 854ce9f77f Merge branch 'main' into gergo/allowUnsupportedUnits 2023-09-04 21:02:54 +01:00
Jedd Morgan 16164a57da Merge branch 'main' into jrm/graph-traversal 2023-08-31 15:04:29 +01:00
Gergő Jedlicska 102850b894 allow string units 2023-08-30 15:56:34 +02:00
Gergő Jedlicska 8a34b95128 remove deprecated user resources 2023-08-14 11:41:37 +02:00
KatKatKateryna f0e68845c0 Revert "might or might not be a good way to warn about no more accessible 'user' methods"
This reverts commit 1ef9b91e82.
2023-07-24 16:12:28 +01:00
KatKatKateryna 1ef9b91e82 might or might not be a good way to warn about no more accessible 'user' methods 2023-07-24 13:29:00 +01:00
KatKatKateryna da838280c3 naming convention, inefficient imports, deprecated methods 2023-07-21 16:32:38 +01:00
Jedd Morgan ec651a9237 traversal 2023-07-17 14:39:10 +01:00
908599 d2685c5cf5 Add unit tests for type validation of Union with float and dict. 2023-04-06 17:28:55 +02:00
Gergő Jedlicska a43e7471a4 style(formatting): fix formatting issues 2023-04-06 16:57:44 +02:00
Gergő Jedlicska a4ed7ebb08 fix(integration-tests): fix integration tests 2023-04-06 16:56:21 +02:00
Gergő Jedlicska c2859475cc feat(path-provider): add connector installation path helper 2023-03-28 13:31:57 +02:00
Gergő Jedlicska ae42bec1c3 style(formatting): rerun formatting 2023-02-15 19:21:48 +01:00
Gergő Jedlicska ea7baf8eb5 fix(type_checking): make sure forwardrefs blank pass type checking 2023-02-15 19:20:45 +01:00
Gergő Jedlicska 1668c80bed fix(typing-system): add set type into type validation 2023-01-11 16:07:04 +01:00
Gergő Jedlicska 3db8565f57 fix(type-validation): fix union types with more than 2 arguments 2023-01-10 12:58:19 +01:00
Gergő Jedlicska 9c952b432d fix(typing): fix non specificed generic types for py 3.7 py 3.8 2023-01-09 15:39:45 +01:00
Gergő Jedlicska f075988e4b fix(typing): fix non generic typedefed lists and tuples 2023-01-09 15:10:23 +01:00
Jedd Morgan 85e7a72524 fix(tests): Fixed regex escape on path tests 2023-01-06 14:00:19 +00:00
Gergő Jedlicska 01036c0f2e test(unit-tests): fix unit tests after merge 2023-01-05 11:06:11 +01:00
Gergő Jedlicska 4d8ca534fe Merge branch 'main' of github.com:specklesystems/specklepy into gergo/pathingUnification 2023-01-05 11:05:03 +01:00
Gergő Jedlicska e941efd95c refactor(tests): split into unit and integration tests folder 2023-01-05 10:59:43 +01:00
Gergő Jedlicska dd54c69554 feat(path-handling): rework path handling to match behavior of Core 2023-01-05 10:41:39 +01:00
Gergő Jedlicska 1cdd4ffc9c feat(Base): rework speckle_type handling to better align with Core
use a dotnet `FullName` like behavior to deremine the speckle_type

fixes #231
2023-01-04 10:15:36 +01:00
Gergő Jedlicska 31ca59cea8 fix(BaseObjectSerializer): fix converting None in list to the string "None" 2022-12-21 16:00:49 +01:00
Gergő Jedlicska fcc33f8989 style(all-project): fix all linting errors across the project with the current setup 2022-12-20 14:46:36 +01:00
Gergő Jedlicska 990cf4eb2f style(whole-project): fixing linting and typing errors 2022-12-20 10:45:22 +01:00
Gergő Jedlicska 6804282fac import ordering 2022-12-16 21:45:47 +01:00
Gergő Jedlicska a3a22a43d5 formatting fixes 2022-12-16 21:45:24 +01:00
Gergő Jedlicska 08aaa41b6c fix units 2022-12-16 21:45:04 +01:00
Gergő Jedlicska 7a46176803 additional test cases for type validation 2022-12-16 21:17:39 +01:00
Gergő Jedlicska 15636dbe62 rework type checking in base 2022-12-16 13:41:07 +01:00
Gergő Jedlicska e805b8ac6e style(all): sort imports with isort 2022-12-09 20:48:02 +01:00
Gergő Jedlicska c8808b07b3 fix(objects): update structural objects to better match core 2022-12-09 19:46:48 +01:00
Gergő Jedlicska 1a9b847c44 test(base): update base tests to properly test the speckle_type generation 2022-12-09 19:46:09 +01:00
Gergő Jedlicska e6b1604bc3 fix seed user redirects 2022-10-26 16:45:24 +02:00
Gergő Jedlicska de29b93b8b fix test ordering 2022-10-26 14:49:12 +02:00
Gergő Jedlicska ddd52f4af9 deprecate user resoure, add new active_user and other_user resources 2022-10-26 11:30:04 +02:00
Gergő Jedlicska ae7c4bc14d add host aplication implementation from sharp 2022-10-06 16:39:40 +02:00
Gergő Jedlicska 625bd5cd84 fixing path.unlink for py37 2022-09-27 15:13:29 +02:00
Gergő Jedlicska 361ba6bfcd fix stream wrapper matching on accounts with subdomain url-s 2022-09-26 20:15:45 +02:00
Gergő Jedlicska 0cfe5db674 reformat stuff, fix backwards compatible typing 2022-09-24 16:22:04 +02:00
Gergő Jedlicska 2f87956154 remove checking for the fetched users email 2022-09-24 16:09:47 +02:00
Gergő Jedlicska 6fc4ab1539 update tests 2022-09-23 17:09:25 +02:00
Gergő Jedlicska 7f432e768d Fix warnings about None type units being set on Base objects
Add proper units enum implementation

Co-authored-by: Alan Rynne <alan@speckle.systems>
Co-authored-by: Morten Engen <morten.engen@multiconsult.no>
2022-09-23 17:08:53 +02:00
izzy lyseggen 9fa6b661eb feat(client): stream invites (#202)
* chore: update dev container

* feat(client): add server version request

* docs(client): enhanced server version docstring

* test(client): sever version test

* test(base): type check for union type

* refactor(base): move _ attrs to `RegisteringBase`

* refactor: some light cleanup

* chore(container): add pylint line length

* feat(metrics): add "Invite Action"

* feat(client): pass server version to resources

* feat(models): pending stream collaborator model

* fix(client): do not parse if request res is null

* feat(exceptions): add unsupported exception

to distinguish for new invites as of server 2.6.4

* feat(client): add stream invite queries/mutations

* test(client): test stream invites

* feat(client): incorporate last invites changes
2022-07-26 17:58:46 +01:00
izzy lyseggen d1adccba00 feat(serialization): cache bases on deserialize (#200)
* feat(serialization): cache bases on deserialize

allows the deserializer to return the same instance when encountering
objects with the same id

closes #191

* feat(serialization): cache bases on deserialize

allows the deserializer to return the same instance when encountering
objects with the same id

closes #191

* fix(serialization): check before accessing id

obj may not be detached and therefore might not have an id

* feat(serializer): cache w id from obj not base

* chore: update deps

* feat(operations): lil send helper

on send, if `transports` is just a transport, add it to a list.
i see this error a lot so just a friendly lil fix!

* feat(objects): breps omg!

* test(geometry): updates for breps

* test(geometry): more brep serialization tests

* refactor(test): formatting

* style: formatting

* test(geometry): clean up test file

* fix(test): brep trims test fix

* refactor(geometry): clean up encoding outputs

* feat(objects): allow kwargs in encoding

* feat(objects): align curve encodings w sharp

* test(geometry): new curve encodings

* feat(client): update stream permission mutation

guess this changed some time recently and i wasn't made aware of it

* fix(objects): brep face and edge encoding

* fix(geometry): breps units 'none' fix

* test(objects): fix 'none' units issue

* revert(486ea99): use `streamGrantPermission`

to be updated for next server release
2022-07-20 18:02:25 +01:00
Reynold Chan 9e30250446 Create test_structural.py (#180) 2022-07-15 16:38:55 +01:00
Gergő Jedlicska 52ab27e60f SQLite write batching (#188)
### SUMMARY
**sqlite transport**

This transport now batches and bulk inserts objects when writing resulting in huge performance improvements (100x).

**base object serializer**

Batching in the sqlite transport necessitated some refactoring here in order to safely call end_write when not using operations.send/receive. This has been resolved by turning traverse_base into a wrapper for _traverse_base which can take care of calling begin/end_write and resetting the writer at the top level. This is not breaking since the top level methods to call have not changed names and the original method has just been prepended with a _

Additionally, missing referenced child objects in the read transport used to raise a SpeckleException. However, using the gql client to call objects.get() will return an object with missing references by design thus throwing an error in serialization. This has been resolved by instead raising a SpeckleWarning when child objects can't be found and just returning the reference + id. ((this method of interacting with objects is discouraged so it is not surprising to me that this bug was lurking for so long - but an oopsie nonetheless!))

**ci / dev**

Updates for the ci config and the dev container to work with the recent changes in server.

NOTE: dev container seems to be pulling an older version of server -- not resolved yet

---

* quick and hacky sqlite batching

* feat(transports): batching sqlite inserts

* chore: upgrade gql3

also removed py-spy as it's not used and i was getting install errors :/

* ci: bump node version

* ci: formatting

* update CI versions

* update to new circleci redis baseimage

* update test fixture auth to non deprecated token based method

* add start and finish write method calls to base object serialize

* chore: dev container update

* fix(serialization): move end and begin write

* style: formatting

* fix(serializer): warn but don't throw if ref not found

this is _not_ an issue with the transports, but an issue with using the
graphql api to fetch objects. since you are only receiving one obj and none of
the children, the transport has no way to find them and should simply
return the reference as is. idk why anyone would really use `object.get`
so tbh i'm not surprised no one has found this bug yet lol

* fix(client): don't parse obj create response

* fix(serializer): wrap `traverse_base`

moving `begin` and `end_write` to the seriazlier due to the new
sqlite transport with batched writes necessitates a wrapper around
`traverse_base` so end/begin write can be called once at the top level.
just adding begin/end write to the original traversal method would make
tons of calls to `end_write` since the traversal is recursive

Co-authored-by: izzy lyseggen <izzy.lyseggen@gmail.com>
2022-06-20 12:00:09 +01:00