Metadata-Version: 2.1
Name: speckle
Version: 2.0.3
Summary: A Python client for Speckle servers.
Home-page: https://github.com/specklworks/pyspeckle
Author: Speckle Works
Author-email: devops@speckle.works
License: UNKNOWN
Platform: UNKNOWN
Classifier: Programming Language :: Python :: 3.6
Classifier: Operating System :: OS Independent
Description-Content-Type: text/markdown
Requires-Dist: astroid (==2.2.5)
Requires-Dist: atomicwrites (==1.3.0)
Requires-Dist: attrs (==19.1.0)
Requires-Dist: certifi (==2019.3.9)
Requires-Dist: chardet (==3.0.4)
Requires-Dist: dataclasses (==0.6)
Requires-Dist: idna (==2.8)
Requires-Dist: isort (==4.3.20)
Requires-Dist: lazy-object-proxy (==1.4.1)
Requires-Dist: mccabe (==0.6.1)
Requires-Dist: more-itertools (==7.0.0)
Requires-Dist: pluggy (==0.11.0)
Requires-Dist: py (==1.8.0)
Requires-Dist: pydantic (==1.4)
Requires-Dist: requests (==2.22.0)
Requires-Dist: six (==1.12.0)
Requires-Dist: typed-ast (==1.4.1)
Requires-Dist: urllib3 (==1.25.3)
Requires-Dist: wcwidth (==0.1.7)
Requires-Dist: wrapt (==1.11.1)
Requires-Dist: websockets (==7.0)
Requires-Dist: websocket-client (==0.56.0)

# PySpeckle
A Python Speckle Client

[![Build Status](https://travis-ci.com/speckleworks/PySpeckle.svg?branch=master)](https://travis-ci.com/speckleworks/PySpeckle)

[Speckle.Works](https://www.speckle.works)

> Speckle: open digital infrastructure for designing, making and operating the built environment.
> We reimagine the design process from the Internet up: Speckle is an open source (MIT) initiative for developing an extensible Design & AEC data communication and collaboration platform.


## Installation
PySpeckle can be installed through `pip`:
`pip install speckle`

## Disclaimer
This code is WIP and as such should be used with caution, on non-sensitive projects.

## Description

PySpeckle is a light Python wrapper / interface for the Speckle framework. It can be used independently through Python scripts, or as a base for building various plug-ins, such as [SpeckleBlender](https://github.com/speckleworks/SpeckleBlender). 

## Quick Start
Here is how you initialise a client, authenticate and start speckling:
```python
from speckle import SpeckleApiClient

client = SpeckleApiClient('hestia.speckle.works')

client.login(
    email='test@test.com',
    password='Speckle<3Python'
)

stream_id = 'HjenwS2s'

stream = client.streams.get(stream_id)

for object in stream.objects:
  print(object.dict())
```

To get a list of all available streams and find a particular one by name:
```python
streams = client.streams.list()
name = "JetStream"

try:
    stream_id = [s for s in streams if s.name == name][0].streamId
except:
    print("Stream {} not found.".format(name))
    return
```

To get all objects from a stream:

```python
for o in stream.objects:
    try:
        obj = client.objects.get(o.id)
    except:
        continue
    print("Object {} is type {}.".format(obj.name, obj.type))
```

Usage documentation can be found [here](https://pyspeckle.readthedocs.io/en/latest/).



## Maintainers
SpeckleBlender is written and maintained by [Tom Svilans](http://tomsvilans.com) ([Github](https://github.com/tsvilans)), [Izzy Lyseggen](https://github.com/izzylys) and [Antoine Dao](https://github.com/antoinedao).

## Notes
Commit formatting can be found [here](https://gist.github.com/brianclements/841ea7bffdb01346392c#type).


