Compare commits
12 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| 9ec2b59b24 | |||
| 2e0743d626 | |||
| 25f16c700d | |||
| c12799b7c6 | |||
| 4530e0702d | |||
| e9443b22ad | |||
| f1b51848cf | |||
| 08fb3f6cd7 | |||
| fe7909c913 | |||
| a00e16929d | |||
| 44d1ef9f93 | |||
| 404dbd1d1e |
+10
-52
@@ -52,28 +52,26 @@ services:
|
||||
####
|
||||
# Speckle Server
|
||||
#######
|
||||
|
||||
speckle-frontend:
|
||||
image: speckle/speckle-frontend:latest
|
||||
image: speckle/speckle-frontend-2:latest
|
||||
restart: always
|
||||
ports:
|
||||
- "0.0.0.0:8080:8080"
|
||||
environment:
|
||||
FILE_SIZE_LIMIT_MB: 100
|
||||
|
||||
speckle-server:
|
||||
image: speckle/speckle-server:latest
|
||||
restart: always
|
||||
healthcheck:
|
||||
test:
|
||||
[
|
||||
"CMD",
|
||||
"node",
|
||||
"-e",
|
||||
"require('node:http').request({headers: {'Content-Type': 'application/json'}, port:3000, hostname:'127.0.0.1', path:'/graphql?query={serverInfo{version}}', method: 'GET' }, (res) => { body = ''; res.on('data', (chunk) => {body += chunk;}); res.on('end', () => {process.exit(res.statusCode != 200 || body.toLowerCase().includes('error'));}); }).end();",
|
||||
]
|
||||
- CMD
|
||||
- /nodejs/bin/node
|
||||
- -e
|
||||
- "try { require('node:http').request({headers: {'Content-Type': 'application/json'}, port:3000, hostname:'127.0.0.1', path:'/readiness', method: 'GET', timeout: 2000 }, (res) => { body = ''; res.on('data', (chunk) => {body += chunk;}); res.on('end', () => {process.exit(res.statusCode != 200 || body.toLowerCase().includes('error'));}); }).end(); } catch { process.exit(1); }"
|
||||
interval: 10s
|
||||
timeout: 3s
|
||||
retries: 30
|
||||
timeout: 10s
|
||||
retries: 3
|
||||
start_period: 90s
|
||||
ports:
|
||||
- "0.0.0.0:3000:3000"
|
||||
depends_on:
|
||||
@@ -98,6 +96,7 @@ services:
|
||||
S3_CREATE_BUCKET: "true"
|
||||
|
||||
FILE_SIZE_LIMIT_MB: 100
|
||||
MAX_PROJECT_MODELS_PER_PAGE: 500
|
||||
|
||||
# TODO: Change this to a unique secret for this server
|
||||
SESSION_SECRET: "TODO:ReplaceWithLongString"
|
||||
@@ -111,47 +110,6 @@ services:
|
||||
POSTGRES_DB: "speckle"
|
||||
ENABLE_MP: "false"
|
||||
|
||||
preview-service:
|
||||
image: speckle/speckle-preview-service:latest
|
||||
restart: always
|
||||
depends_on:
|
||||
speckle-server:
|
||||
condition: service_healthy
|
||||
mem_limit: "1000m"
|
||||
memswap_limit: "1000m"
|
||||
environment:
|
||||
DEBUG: "preview-service:*"
|
||||
PG_CONNECTION_STRING: "postgres://speckle:speckle@postgres/speckle"
|
||||
|
||||
webhook-service:
|
||||
image: speckle/speckle-webhook-service:latest
|
||||
restart: always
|
||||
depends_on:
|
||||
speckle-server:
|
||||
condition: service_healthy
|
||||
environment:
|
||||
DEBUG: "webhook-service:*"
|
||||
PG_CONNECTION_STRING: "postgres://speckle:speckle@postgres/speckle"
|
||||
WAIT_HOSTS: postgres:5432
|
||||
|
||||
fileimport-service:
|
||||
image: speckle/speckle-fileimport-service:latest
|
||||
restart: always
|
||||
depends_on:
|
||||
speckle-server:
|
||||
condition: service_healthy
|
||||
environment:
|
||||
DEBUG: "fileimport-service:*"
|
||||
PG_CONNECTION_STRING: "postgres://speckle:speckle@postgres/speckle"
|
||||
WAIT_HOSTS: postgres:5432
|
||||
|
||||
S3_ENDPOINT: "http://minio:9000"
|
||||
S3_ACCESS_KEY: "minioadmin"
|
||||
S3_SECRET_KEY: "minioadmin"
|
||||
S3_BUCKET: "speckle-server"
|
||||
|
||||
SPECKLE_SERVER_URL: "http://speckle-server:3000"
|
||||
|
||||
networks:
|
||||
default:
|
||||
name: speckle-server
|
||||
|
||||
Generated
+637
-473
File diff suppressed because it is too large
Load Diff
@@ -1,12 +1,22 @@
|
||||
"""Builtin Speckle object kit."""
|
||||
|
||||
from specklepy.objects.GIS.CRS import CRS
|
||||
from specklepy.objects.GIS.features import (
|
||||
GisMultipatchFeature,
|
||||
GisNonGeometricFeature,
|
||||
GisPointFeature,
|
||||
GisPolygonFeature,
|
||||
GisPolylineFeature,
|
||||
)
|
||||
from specklepy.objects.GIS.geometry import (
|
||||
GisLineElement,
|
||||
GisPointElement,
|
||||
GisPolygonElement,
|
||||
GisPolygonGeometry,
|
||||
GisRasterElement,
|
||||
PolygonGeometry,
|
||||
PolygonGeometry3d,
|
||||
GisMultipatchGeometry,
|
||||
)
|
||||
from specklepy.objects.GIS.layers import RasterLayer, VectorLayer
|
||||
|
||||
@@ -14,9 +24,17 @@ __all__ = [
|
||||
"VectorLayer",
|
||||
"RasterLayer",
|
||||
"GisPolygonGeometry",
|
||||
"PolygonGeometry",
|
||||
"PolygonGeometry3d",
|
||||
"GisMultipatchGeometry",
|
||||
"GisPolygonElement",
|
||||
"GisLineElement",
|
||||
"GisPointElement",
|
||||
"GisRasterElement",
|
||||
"CRS",
|
||||
"GisPointFeature",
|
||||
"GisPolylineFeature",
|
||||
"GisPolygonFeature",
|
||||
"GisMultipatchFeature",
|
||||
"GisNonGeometricFeature",
|
||||
]
|
||||
|
||||
@@ -0,0 +1,107 @@
|
||||
from typing import List, Optional
|
||||
|
||||
from specklepy.objects.base import Base
|
||||
from specklepy.objects.geometry import Mesh, Point, Polyline
|
||||
from specklepy.objects.GIS.geometry import PolygonGeometry
|
||||
|
||||
|
||||
class GisNonGeometricFeature(Base, speckle_type="Objects.GIS.GisNonGeometricFeature"):
|
||||
"""GIS Table feature"""
|
||||
|
||||
attributes: Base
|
||||
|
||||
def __init__(
|
||||
self,
|
||||
attributes: Optional[Base] = None,
|
||||
) -> None:
|
||||
self.attributes = attributes or Base()
|
||||
|
||||
|
||||
class GisPointFeature(
|
||||
Base,
|
||||
detachable={"displayValue"},
|
||||
speckle_type="Objects.GIS.GisPointFeature",
|
||||
):
|
||||
"""Gis Point Feature"""
|
||||
|
||||
attributes: Base
|
||||
displayValue: List[Point]
|
||||
|
||||
@property
|
||||
def geometry(self) -> List[Point]:
|
||||
return self.displayValue
|
||||
|
||||
def __init__(
|
||||
self,
|
||||
attributes: Optional[Base] = None,
|
||||
displayValue: Optional[List[Point]] = None,
|
||||
) -> None:
|
||||
self.attributes = attributes or Base()
|
||||
displayValue = displayValue or []
|
||||
|
||||
|
||||
class GisPolylineFeature(
|
||||
Base,
|
||||
detachable={"displayValue"},
|
||||
speckle_type="Objects.GIS.GisPolylineFeature",
|
||||
):
|
||||
"""Gis Polyline Feature"""
|
||||
|
||||
attributes: Base
|
||||
displayValue: List[Polyline]
|
||||
|
||||
@property
|
||||
def geometry(self) -> List[Polyline]:
|
||||
return self.displayValue
|
||||
|
||||
def __init__(
|
||||
self,
|
||||
attributes: Optional[Base] = None,
|
||||
displayValue: Optional[List[Point]] = None,
|
||||
) -> None:
|
||||
self.attributes = attributes or Base()
|
||||
displayValue = displayValue or []
|
||||
|
||||
|
||||
class GisPolygonFeature(
|
||||
Base,
|
||||
detachable={"displayValue", "geometry"},
|
||||
speckle_type="Objects.GIS.GisPolygonFeature",
|
||||
):
|
||||
"""Gis Polygon Feature"""
|
||||
|
||||
attributes: Base
|
||||
displayValue: List[Mesh]
|
||||
geometry: List[PolygonGeometry]
|
||||
|
||||
def __init__(
|
||||
self,
|
||||
geometry: List[PolygonGeometry],
|
||||
attributes: Optional[Base] = None,
|
||||
displayValue: Optional[List[Point]] = None,
|
||||
) -> None:
|
||||
self.geometry = geometry
|
||||
self.attributes = attributes or Base()
|
||||
displayValue = displayValue or []
|
||||
|
||||
|
||||
class GisMultipatchFeature(
|
||||
Base,
|
||||
detachable={"displayValue", "geometry"},
|
||||
speckle_type="Objects.GIS.GisMultipatchFeature",
|
||||
):
|
||||
"""Gis Multipatch Feature"""
|
||||
|
||||
attributes: Base
|
||||
displayValue: List[Mesh]
|
||||
geometry: List[Base] # GisMultipatchGeometry or PolygonGeometry3d
|
||||
|
||||
def __init__(
|
||||
self,
|
||||
geometry: List[Base],
|
||||
attributes: Optional[Base] = None,
|
||||
displayValue: Optional[List[Point]] = None,
|
||||
) -> None:
|
||||
self.geometry = geometry
|
||||
self.attributes = attributes or Base()
|
||||
displayValue = displayValue or []
|
||||
@@ -1,5 +1,7 @@
|
||||
from typing import List, Optional, Union
|
||||
|
||||
from deprecated import deprecated
|
||||
|
||||
from specklepy.objects.base import Base
|
||||
from specklepy.objects.geometry import (
|
||||
Arc,
|
||||
@@ -12,23 +14,69 @@ from specklepy.objects.geometry import (
|
||||
)
|
||||
|
||||
|
||||
class GisPolygonGeometry(
|
||||
Base, speckle_type="Objects.GIS.PolygonGeometry", detachable={"displayValue"}
|
||||
):
|
||||
class PolygonGeometry(Base, speckle_type="Objects.GIS.PolygonGeometry"):
|
||||
"""GIS Polygon Geometry"""
|
||||
|
||||
boundary: Optional[Union[Polyline, Arc, Line, Circle, Polycurve]] = None
|
||||
voids: Optional[List[Union[Polyline, Arc, Line, Circle, Polycurve]]] = None
|
||||
displayValue: Optional[List[Mesh]] = None
|
||||
boundary: Polyline
|
||||
voids: List[Polyline]
|
||||
|
||||
def __init__(
|
||||
self,
|
||||
units: str,
|
||||
boundary: Polyline,
|
||||
voids: Optional[List[Polyline]] = None,
|
||||
) -> None:
|
||||
super().__init__(units=units)
|
||||
self.boundary = boundary
|
||||
self.voids = voids or []
|
||||
|
||||
|
||||
GisPolygonGeometry = PolygonGeometry
|
||||
|
||||
|
||||
class PolygonGeometry3d(
|
||||
PolygonGeometry,
|
||||
speckle_type="Objects.GIS.PolygonGeometry3d",
|
||||
):
|
||||
"""GIS Polygon3d Geometry"""
|
||||
|
||||
def __init__(
|
||||
self,
|
||||
units: str,
|
||||
boundary: Polyline,
|
||||
voids: Optional[List[Polyline]] = None,
|
||||
) -> None:
|
||||
super().__init__(units=units, boundary=boundary, voids=voids)
|
||||
|
||||
|
||||
class GisMultipatchGeometry(
|
||||
Base,
|
||||
speckle_type="Objects.GIS.GisMultipatchGeometry",
|
||||
):
|
||||
"""GIS Polygon3d Geometry"""
|
||||
|
||||
def __init__(
|
||||
self,
|
||||
units: str,
|
||||
faces: List[int],
|
||||
vertices: List[float],
|
||||
colors: Optional[List[int]],
|
||||
) -> None:
|
||||
super().__init__(units=units)
|
||||
self.faces = faces
|
||||
self.vertices = vertices
|
||||
self.colors = colors or []
|
||||
|
||||
|
||||
@deprecated(version="2.20", reason="Replaced with GisPolygonFeature")
|
||||
class GisPolygonElement(Base, speckle_type="Objects.GIS.PolygonElement"):
|
||||
"""GIS Polygon element"""
|
||||
|
||||
geometry: Optional[List[GisPolygonGeometry]] = None
|
||||
geometry: Optional[List[PolygonGeometry]] = None
|
||||
attributes: Optional[Base] = None
|
||||
|
||||
|
||||
@deprecated(version="2.20", reason="Replaced with GisPolyineFeature")
|
||||
class GisLineElement(Base, speckle_type="Objects.GIS.LineElement"):
|
||||
"""GIS Polyline element"""
|
||||
|
||||
@@ -36,6 +84,7 @@ class GisLineElement(Base, speckle_type="Objects.GIS.LineElement"):
|
||||
attributes: Optional[Base] = None
|
||||
|
||||
|
||||
@deprecated(version="2.20", reason="Replaced with GisPointFeature")
|
||||
class GisPointElement(Base, speckle_type="Objects.GIS.PointElement"):
|
||||
"""GIS Point element"""
|
||||
|
||||
@@ -68,6 +117,7 @@ class GisTopography(
|
||||
"""GIS Raster element with 3d Topography representation"""
|
||||
|
||||
|
||||
@deprecated(version="2.20", reason="Replaced with GisNonGeometricFeature")
|
||||
class GisNonGeometryElement(Base, speckle_type="Objects.GIS.NonGeometryElement"):
|
||||
"""GIS Table feature"""
|
||||
|
||||
|
||||
@@ -295,17 +295,33 @@ class RevitParameter(Base, speckle_type="Objects.BuiltElements.Revit.Parameter")
|
||||
value: Any = None
|
||||
applicationUnitType: Optional[str] = None # eg UnitType UT_Length
|
||||
applicationUnit: Optional[str] = None # DisplayUnitType eg DUT_MILLIMITERS
|
||||
applicationInternalName: Optional[
|
||||
str
|
||||
] = None # BuiltInParameterName or GUID for shared parameter
|
||||
applicationInternalName: Optional[str] = (
|
||||
None # BuiltInParameterName or GUID for shared parameter
|
||||
)
|
||||
isShared: bool = False
|
||||
isReadOnly: bool = False
|
||||
isTypeParameter: bool = False
|
||||
|
||||
|
||||
@deprecated(
|
||||
version="2.20", reason="Collections namespace changed, collectionType deprecated"
|
||||
)
|
||||
class Collection(
|
||||
Base, speckle_type="Speckle.Core.Models.Collection", detachable={"elements"}
|
||||
):
|
||||
name: Optional[str] = None
|
||||
collectionType: Optional[str] = None
|
||||
elements: Optional[List[Base]] = None
|
||||
|
||||
|
||||
class Collection( # noqa: F811
|
||||
Base,
|
||||
speckle_type="Speckle.Core.Models.Collections.Collection",
|
||||
detachable={"elements"},
|
||||
):
|
||||
name: str
|
||||
elements: List[Base]
|
||||
|
||||
def init(self, name: str, elements: Optional[List[Base]] = None):
|
||||
self.name = name
|
||||
self.elements = elements or []
|
||||
|
||||
Reference in New Issue
Block a user