Skip to content

Commit dfce93d

Browse files
Added README.md
1 parent 7c33cd0 commit dfce93d

10 files changed

Lines changed: 155 additions & 89 deletions

File tree

.github/workflows/build.yml

Lines changed: 33 additions & 33 deletions
Original file line numberDiff line numberDiff line change
@@ -1,34 +1,34 @@
1-
name: Upload Python Package
2-
3-
on:
4-
push:
5-
tags: v*
6-
7-
jobs:
8-
deploy:
9-
runs-on: ubuntu-latest
10-
steps:
11-
- uses: actions/checkout@v2
12-
- name: Set up Python
13-
uses: actions/setup-python@v2
14-
with:
15-
python-version: '3.x'
16-
- name: Install dependencies
17-
run: |
18-
python -m pip install --upgrade pip
19-
pip install setuptools wheel twine grpcio grpcio-tools protobuf
20-
- name: Set VERSION environment variable
21-
run: |
22-
echo GitHub_ref: $GITHUB_REF
23-
arrTag=(${GITHUB_REF//\// })
24-
VERSION="${arrTag[2]}"
25-
echo Version: $VERSION
26-
VERSION="${VERSION//v}"
27-
echo Clean Version: $VERSION
28-
echo "VERSION=${VERSION}" >> $GITHUB_ENV
29-
- name: Build and publish
30-
env:
31-
TWINE_USERNAME: "__token__"
32-
TWINE_PASSWORD: ${{ secrets.PYPI_ORG_TOKEN }}
33-
run: |
1+
name: Upload Python Package
2+
3+
on:
4+
push:
5+
tags: v*
6+
7+
jobs:
8+
deploy:
9+
runs-on: ubuntu-latest
10+
steps:
11+
- uses: actions/checkout@v2
12+
- name: Set up Python
13+
uses: actions/setup-python@v2
14+
with:
15+
python-version: '3.x'
16+
- name: Install dependencies
17+
run: |
18+
python -m pip install --upgrade pip
19+
pip install setuptools wheel twine grpcio grpcio-tools protobuf
20+
- name: Set VERSION environment variable
21+
run: |
22+
echo GitHub_ref: $GITHUB_REF
23+
arrTag=(${GITHUB_REF//\// })
24+
VERSION="${arrTag[2]}"
25+
echo Version: $VERSION
26+
VERSION="${VERSION//v}"
27+
echo Clean Version: $VERSION
28+
echo "VERSION=${VERSION}" >> $GITHUB_ENV
29+
- name: Build and publish
30+
env:
31+
TWINE_USERNAME: "__token__"
32+
TWINE_PASSWORD: ${{ secrets.PYPI_ORG_TOKEN }}
33+
run: |
3434
python ./build.py

.gitignore

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
1-
/bin
2-
/lib
3-
/pyvenv.cfg
4-
/python/dist
5-
/python/systemathics.apis.egg-info
1+
/bin
2+
/lib
3+
/pyvenv.cfg
4+
/python/dist
5+
/python/systemathics.apis.egg-info

README.md

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
# About Ganymede
2+
3+
Built as cloud native, Ganymede is a fully managed platform, continuously updated with high-quality, curated,
4+
and cross validated data. Ganymede is purpose built for the financial data markets ever increasing data volumes,
5+
allowing clients to query against large data sets, including tick-by-tick, sampled, daily, corporate actions,
6+
ESG and reference data. Packed with a broad range of analytics, the solution is optimized for fast response times,
7+
supports full order book natively and allows fine grained/customizable trade and quote conditions mapping and filtering.
8+
9+
For further information, please visit [Ganymede home page](https://ganymede.cloud)
10+
11+
# About this project
12+
13+
This project provides up-to-date gRPC clients to access [Ganymede API](https://ganymede.cloud/api-documentation.html)
14+
15+
Latest Python package
16+
17+
[![PyPI version](https://badge.fury.io/py/systemathics.apis.svg)](https://badge.fury.io/py/systemathics.apis)
18+
19+
# About us
20+
21+
[Systemathics](https://systemathics.com) is a French fintech founded in 2008 developing its innovative products with the highest quality standards 100% in France.
22+
Our main mission is to provide global investors with a complete end-to-end solution to systematize alpha generation in a robust way.
23+
From data pre and post trade analysis, back-testing, risk assessment and signal generation to day-to-day execution in production and everything in between.

buf.yaml

Lines changed: 11 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,12 @@
1-
version: v1beta1
2-
build:
3-
roots:
4-
- src
5-
lint:
6-
use:
7-
- DEFAULT
8-
ignore:
9-
- google
10-
breaking:
11-
use:
1+
version: v1beta1
2+
build:
3+
roots:
4+
- src
5+
lint:
6+
use:
7+
- DEFAULT
8+
ignore:
9+
- google
10+
breaking:
11+
use:
1212
- FILE

python/LICENSE

Lines changed: 21 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -1,21 +1,21 @@
1-
MIT License
2-
3-
Copyright (c) 2021 Systemathics
4-
5-
Permission is hereby granted, free of charge, to any person obtaining a copy
6-
of this software and associated documentation files (the "Software"), to deal
7-
in the Software without restriction, including without limitation the rights
8-
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9-
copies of the Software, and to permit persons to whom the Software is
10-
furnished to do so, subject to the following conditions:
11-
12-
The above copyright notice and this permission notice shall be included in all
13-
copies or substantial portions of the Software.
14-
15-
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16-
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17-
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18-
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19-
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20-
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21-
SOFTWARE.
1+
MIT License
2+
3+
Copyright (c) 2021 Systemathics
4+
5+
Permission is hereby granted, free of charge, to any person obtaining a copy
6+
of this software and associated documentation files (the "Software"), to deal
7+
in the Software without restriction, including without limitation the rights
8+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9+
copies of the Software, and to permit persons to whom the Software is
10+
furnished to do so, subject to the following conditions:
11+
12+
The above copyright notice and this permission notice shall be included in all
13+
copies or substantial portions of the Software.
14+
15+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21+
SOFTWARE.

python/README.rst

Lines changed: 34 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,34 @@
1+
About Ganymede
2+
==============
3+
4+
Built as cloud native, Ganymede is a fully managed platform,
5+
continuously updated with high-quality, curated, and cross validated
6+
data. Ganymede is purpose built for the financial data markets ever
7+
increasing data volumes, allowing clients to query against large data
8+
sets, including tick-by-tick, sampled, daily, corporate actions, ESG and
9+
reference data. Packed with a broad range of analytics, the solution is
10+
optimized for fast response times, supports full order book natively and
11+
allows fine grained/customizable trade and quote conditions mapping and
12+
filtering.
13+
14+
For further information, please visit `Ganymede home
15+
page <https://ganymede.cloud>`__
16+
17+
About this package
18+
===================
19+
20+
This package provides up-to-date gRPC clients to access `Ganymede
21+
API <https://ganymede.cloud/api-documentation.html>`__
22+
23+
Python version
24+
25+
About us
26+
========
27+
28+
`Systemathics <https://systemathics.com>`__ is a French fintech founded
29+
in 2008 developing its innovative products with the highest quality
30+
standards 100% in France. Our main mission is to provide global
31+
investors with a complete end-to-end solution to systematize alpha
32+
generation in a robust way. From data pre and post trade analysis,
33+
back-testing, risk assessment and signal generation to day-to-day
34+
execution in production and everything in between.

python/setup.cfg

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,2 +1,2 @@
1-
[bdist_wheel]
1+
[bdist_wheel]
22
universal=1

python/setup.py

Lines changed: 12 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -3,21 +3,30 @@
33

44
from setuptools import setup, find_packages
55

6+
with open(os.path.join(os.path.abspath(os.path.dirname(__file__)), 'README.rst'), encoding='utf-8') as f:
7+
lines = f.readlines()
8+
description_content = "".join(lines)
9+
610
setup(
711
name="systemathics.apis",
812
version="0.0.0",
913
author="Systemathics",
1014
author_email="contact@systemathics.com",
11-
description="Python grpc stub for Systemathics APIs.",
12-
url="https://github.com/pypa/sampleproject",
15+
description="Python grpc stub for Systemathics API.",
16+
url="https://github.com/systemathics/sdk-python",
1317
packages=find_packages(),
1418
namespace_packages=['systemathics'],
1519
classifiers=[
1620
"Programming Language :: Python :: 3",
1721
"License :: OSI Approved :: MIT License",
1822
"Operating System :: OS Independent",
23+
"Intended Audience :: Developers",
24+
"Intended Audience :: Information Technology",
25+
"Intended Audience :: Science/Research"
1926
],
2027
license='MIT',
2128
python_requires='>=3.6',
2229
install_requires=['googleapis-common-protos', 'protobuf', 'grpcio'],
23-
)
30+
long_description= description_content,
31+
long_description_content_type="text/x-rst; charset=UTF-8"
32+
)

src/systemathics/apis/helpers/channel_helpers.py

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,10 @@
1-
"""Systemathics Ganymede APIs Token Helpers
1+
"""Systemathics Ganymede API Token Helpers
22
3-
This module helps to create channels to access Systemathics Ganymede authenticated APIs.
3+
This module helps to create channels to access Systemathics Ganymede authenticated API.
44
55
functions:
6-
* get_grpc_channel - Get a channel suitable to call Ganymede gRPC APIs.
7-
* get_aio_grpc_channel - Get an aio channel suitable to call Ganymede gRPC APIs.
6+
* get_grpc_channel - Get a channel suitable to call Ganymede gRPC API.
7+
* get_aio_grpc_channel - Get an aio channel suitable to call Ganymede gRPC API.
88
"""
99

1010
import os
@@ -15,15 +15,15 @@
1515

1616
def get_grpc_channel() -> grpc.Channel:
1717
"""
18-
Get a channel suitable to call Ganymede gRPC APIs.
18+
Get a channel suitable to call Ganymede gRPC API.
1919
This uses the GRPC_APIS environment variable in the form http[s]://fdqn[:port] (if no scheme is give, we'll assume https).
2020
If none is detected, use DEFAULT_ENDPOINT.
2121
Note:
2222
For secure channels, we'll try to guess the path of CA certificates chain automatically.
2323
For windows you need to 'pip install wheel python-certifi-win32' for that to work (it exports Windows CA Store to a PEM file).
2424
In the event CA certificates cannot be found, or if you want to use a custom file, set the SSL_CERT_FILE environment variable.
2525
Returns:
26-
An aio channel suitable to call Ganymede gRPC APIs.
26+
An aio channel suitable to call Ganymede gRPC API.
2727
"""
2828
endpoint = os.getenv('GRPC_APIS','')
2929
endpoint = endpoint if endpoint else DEFAULT_ENDPOINT # if no endpoint was provided, use the default one
@@ -35,15 +35,15 @@ def get_grpc_channel() -> grpc.Channel:
3535

3636
def get_aio_grpc_channel() -> grpc.aio.Channel:
3737
"""
38-
Get an aio channel suitable to call Ganymede gRPC APIs.
38+
Get an aio channel suitable to call Ganymede gRPC API.
3939
This uses the GRPC_APIS environment variable in the form http[s]://fdqn[:port].
4040
If none is detected, use DEFAULT_ENDPOINT.
4141
Note:
4242
For secure channels, we'll try to guess the path of CA certificates chain automatically.
4343
For windows you need to 'pip install wheel python-certifi-win32' for that to work (it exports Windows CA Store to a PEM file).
4444
In the event CA certificates cannot be found, or if you want to use a custom file, set the SSL_CERT_FILE environment variable.
4545
Returns:
46-
An aio channel suitable to call Ganymede gRPC APIs.
46+
An aio channel suitable to call Ganymede gRPC API.
4747
"""
4848
endpoint = os.getenv('GRPC_APIS','')
4949
endpoint = endpoint if endpoint else DEFAULT_ENDPOINT # if no endpoint was provided, use the default one

src/systemathics/apis/helpers/token_helpers.py

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,9 @@
1-
"""Systemathics Ganymede APIs Token Helpers
1+
"""Systemathics Ganymede API Token Helpers
22
3-
This module helps to create tokens to access Systemathics Ganymede authenticated APIs.
3+
This module helps to create tokens to access Systemathics Ganymede authenticated API.
44
55
functions:
6-
* get_token - Get a JWT Authorization token suitable to call Ganymede gRPC APIs.
6+
* get_token - Get a JWT Authorization token suitable to call Ganymede gRPC API.
77
"""
88

99
import os
@@ -16,21 +16,21 @@
1616

1717
def get_token_as_metadata() -> []:
1818
"""
19-
Get a JWT Authorization token suitable to call Ganymede gRPC APIs.
19+
Get a JWT Authorization token suitable to call Ganymede gRPC API.
2020
We either use 'AUTH0_TOKEN' environment variable (if present) to create a bearer token from it.
2121
Or 'CLIENT_ID' and 'CLIENT_SECRET' environment variables (optionally 'AUDIENCE' can override DEFAULT_AUDIENCE, and 'TENANT' can override DEFAULT_TENANT).
2222
Returns:
23-
A JWT Authorization token suitable to call Ganymede gRPC APIs in a form directly assignable to metadata= in stub call, that is [('authorization', get_token())].
23+
A JWT Authorization token suitable to call Ganymede gRPC API in a form directly assignable to metadata= in stub call, that is [('authorization', get_token())].
2424
"""
2525
return [('authorization', get_token())]
2626

2727
def get_token() -> str:
2828
"""
29-
Get a JWT Authorization token suitable to call Ganymede gRPC APIs.
29+
Get a JWT Authorization token suitable to call Ganymede gRPC API.
3030
We either use 'AUTH0_TOKEN' environment variable (if present) to create a bearer token from it.
3131
Or 'CLIENT_ID' and 'CLIENT_SECRET' environment variables (optionally 'AUDIENCE' can override DEFAULT_AUDIENCE, and 'TENANT' can override DEFAULT_TENANT).
3232
Returns:
33-
A JWT Authorization token suitable to call Ganymede gRPC APIs.
33+
A JWT Authorization token suitable to call Ganymede gRPC API.
3434
"""
3535
auth0_token = os.getenv("AUTH0_TOKEN","")
3636
client_id = os.getenv("CLIENT_ID","")

0 commit comments

Comments
 (0)