Metadata-Version: 2.1
Name: python-thingiverse
Version: 0.0.7.dev0
Summary: A Python Thingiverse REST API wrapper
Home-page: https://garciajg.github.io/python-thingiverse/
Keywords: thingiverse,wrapper
Author: Jose Garcia
Author-email: maton.pg@gmail.com
Requires-Python: >=3.8,<4.0
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.8
Requires-Dist: Mako (==1.1.6)
Requires-Dist: Markdown (==3.3.6)
Requires-Dist: MarkupSafe (==2.0.1)
Requires-Dist: attrs (==21.4.0)
Requires-Dist: certifi (==2021.10.8)
Requires-Dist: charset-normalizer (==2.0.11)
Requires-Dist: coverage (==6.3.1)
Requires-Dist: distlib (==0.3.4)
Requires-Dist: filelock (==3.4.2)
Requires-Dist: idna (==3.3)
Requires-Dist: iniconfig (==1.1.1)
Requires-Dist: mypy (==0.931)
Requires-Dist: mypy-extensions (==0.4.3)
Requires-Dist: nose (==1.3.7)
Requires-Dist: packaging (==21.3)
Requires-Dist: pdoc3 (==0.10.0)
Requires-Dist: platformdirs (==2.5.0)
Requires-Dist: pluggy (==1.0.0)
Requires-Dist: py (==1.11.0)
Requires-Dist: pyparsing (==3.0.7)
Requires-Dist: pytest (==7.0.0)
Requires-Dist: pytest-cov (==3.0.0)
Requires-Dist: python-box (==5.4.1)
Requires-Dist: python-dotenv (==0.19.2)
Requires-Dist: requests (==2.27.1)
Requires-Dist: six (==1.16.0)
Requires-Dist: toml (==0.10.2)
Requires-Dist: tomli (==2.0.1)
Requires-Dist: tox (==3.24.5)
Requires-Dist: types-requests (==2.27.9)
Requires-Dist: types-urllib3 (==1.26.9)
Requires-Dist: typing-extensions (==4.0.1)
Requires-Dist: urllib3 (==1.26.8)
Requires-Dist: virtualenv (==20.13.1)
Project-URL: Documentation, https://garciajg.github.io/python-thingiverse/
Project-URL: Repository, https://github.com/garciajg/python-thingiverse
Description-Content-Type: text/markdown

# Python Thingiverse

[![Total alerts](https://img.shields.io/lgtm/alerts/g/garciajg/python-thingiverse.svg?logo=lgtm&logoWidth=18)](https://lgtm.com/projects/g/garciajg/python-thingiverse/alerts/)
[![Language grade: Python](https://img.shields.io/lgtm/grade/python/g/garciajg/python-thingiverse.svg?logo=lgtm&logoWidth=18)](https://lgtm.com/projects/g/garciajg/python-thingiverse/context:python)


NOT OFFICIAL. This is only a Python wrapper for Thingiverse REST API.

This project was started in Feb 10 2022. It is still being developed and improved. To see the Test PyPI package, check it [here](https://test.pypi.org/project/python-thingiverse/).

This project uses [python-box](https://pypi.org/project/python-box/) enpoint response. Python Box allows for use of dot-notation in dictionaries, this includes making inaccessible keys safe to access as well.

** We are constantly working on upgrading our documentation.

```python
# From python-box documentation https://pypi.org/project/python-box/
from box import Box

movie_box = Box({ "Robin Hood: Men in Tights": { "imdb stars": 6.7, "length": 104 } })

movie_box.Robin_Hood_Men_in_Tights.imdb_stars
# 6.7
```

Check out full [python-thingiverse documentation](https://garciajg.github.io/python-thingiverse/)

## Table of Contents

+ [Getting Started](#getting-started)
  + [Usage](#usage)
+ [Installing development package](#installing-development-package)
+ [TODO](#todo)
+ [Improvements](#improvements)


### Getting Started

To install the package run

```bash
pip install python-thingiverse
```


#### Usage

Initializing the Thingiverse

```python
from thingiverse import Thingiverse

thingy = Thingiverse(access_token="<access token>")
search_results = thingy.search_term("RPi 4")
```

Using `python-box` with our wrapper makes it so that we could do this:

```python
search_results.total
search_results.hits
```


### Installing development package

```bash
python3 -m pip install -i https://test.pypi.org/simple/ python-thingiverse
```


### TODO:

- `PATCH /users/{$username}/`
- `DELETE /users/{$username}/`
- `POST /users/{$username}/verify-account`
- `GET /users/{$username}/event-count`
- `POST /users/{$username}/followers`
- `DELETE /users/{$username}/followers`
- `POST /users/{$username}/avatar-image`
- `POST /users/{$username}/cover-image`

### Improvements

- [ ] Look into autoversioning
- [ ] Tests for new endpoints

