Browse Source

Initial Commit of Teknik Python Library

master
Teknikode 2 years ago
parent
commit
5c0f226d19
9 changed files with 168 additions and 3 deletions
  1. 25
    0
      LICENSE.txt
  2. 2
    0
      MANIFEST.in
  3. 0
    3
      README.md
  4. 4
    0
      README.rst
  5. 0
    0
      setup.cfg
  6. 76
    0
      setup.py
  7. 1
    0
      teknik/__init__.py
  8. 41
    0
      teknik/uploads.py
  9. 19
    0
      teknik/util.py

+ 25
- 0
LICENSE.txt View File

@@ -0,0 +1,25 @@
Copyright (c) 2013-2014, Chris Woodward <admin@teknik.io>
All rights reserved.

Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions are met:

* Redistributions of source code must retain the above copyright
notice, this list of conditions and the following disclaimer.
* Redistributions in binary form must reproduce the above copyright
notice, this list of conditions and the following disclaimer in the
documentation and/or other materials provided with the distribution.
* Neither the name of the organization nor the
names of its contributors may be used to endorse or promote products
derived from this software without specific prior written permission.

THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
DISCLAIMED. IN NO EVENT SHALL CHRIS WOODWARD BE LIABLE FOR ANY
DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

+ 2
- 0
MANIFEST.in View File

@@ -0,0 +1,2 @@
# Include the license file
include LICENSE.txt

+ 0
- 3
README.md View File

@@ -1,3 +0,0 @@
# Teknik-Python

A python library for interacting with Teknik Services

+ 4
- 0
README.rst View File

@@ -0,0 +1,4 @@
Teknik Services
===============

This package allows easy access to Teknik Services through the API.

+ 0
- 0
setup.cfg View File


+ 76
- 0
setup.py View File

@@ -0,0 +1,76 @@
# Always prefer setuptools over distutils
from setuptools import setup, find_packages
# To use a consistent encoding
from codecs import open
from os import path

here = path.abspath(path.dirname(__file__))

# Get the long description from the README file
with open(path.join(here, 'README.rst'), encoding='utf-8') as f:
long_description = f.read()

setup(
name='Teknik',

# Versions should comply with PEP440. For a discussion on single-sourcing
# the version across setup.py and the project code, see
# https://packaging.python.org/en/latest/single_source_version.html
version='1.0.5',

description='A library for using the Teknik Services',
long_description=long_description,

# The project's main homepage.
url='https://git.teknik.io/Teknikode/Tools/src/master/Python',

# Author details
author='Uncled1023',
author_email='admin@teknik.io',

# Choose your license
license='BSD 3-Clause',

# See https://pypi.python.org/pypi?%3Aaction=list_classifiers
classifiers=[
# How mature is this project? Common values are
# 3 - Alpha
# 4 - Beta
# 5 - Production/Stable
'Development Status :: 3 - Alpha',

# Indicate who your project is intended for
'Intended Audience :: Developers',
'Topic :: Software Development :: Libraries',

# Pick your license as you wish (should match "license" above)
'License :: OSI Approved :: BSD License',

# Specify the Python versions you support here. In particular, ensure
# that you indicate whether you support Python 2, Python 3 or both.
'Programming Language :: Python :: 3',
'Programming Language :: Python :: 3.3',
'Programming Language :: Python :: 3.4',
'Programming Language :: Python :: 3.5',
'Programming Language :: Python :: 3 :: Only',
],

# What does your project relate to?
keywords='teknik services upload paste',

# You can just specify the packages manually here if your project is
# simple. Or you can use find_packages().
packages=find_packages(exclude=['contrib', 'docs', 'tests']),

python_requires='>=3',
# Alternatively, if you want to distribute just a my_module.py, uncomment
# this:
# py_modules=["my_module"],

# List run-time dependencies here. These will be installed by pip when
# your project is installed. For an analysis of "install_requires" vs pip's
# requirements files see:
# https://packaging.python.org/en/latest/requirements.html
install_requires=['requests'],
)

+ 1
- 0
teknik/__init__.py View File

@@ -0,0 +1 @@
__all__ = ["uploads", "util"]

+ 41
- 0
teknik/uploads.py View File

@@ -0,0 +1,41 @@
# Copyright (c) 2017 by Uncled1023 <admin@teknik.io>
#
# License BSD 3-Clause
import_success = True

# Base Libraries
import base64
import json

from . import util

# Dependencies
try:
import requests
except ImportError as e:
print('Missing package(s) for %s: %s' % ('Teknik', e))
import_success = False

# Main Functions
def UploadFile(url, filePath, username, authToken):
files = {'file': open(filePath, "rb")}
if url is None:
url = util.defaultUrl
if username is None:
username = util.defaultUsername
if authToken is None:
authToken = util.defaultToken
# Create a header if they have added auth info
headers = {}
if username != '' and authToken != '':
encAuth = base64.b64encode(username + ':' + authToken)
headers = {'Authorization': 'Basic ' + encAuth}
r = requests.post(util.GetUrl(url, 'upload'), files=files, headers=headers)
jObj = json.loads(r.text)
return jObj

+ 19
- 0
teknik/util.py View File

@@ -0,0 +1,19 @@
from urllib.parse import urljoin

defaultUrl = 'https://api.teknik.io/v1/'
defaultUsername = ''
defaultToken = ''

def GetUrl(url, service):
finalUrl = ''
if url is None or url == '':
url = defaultUrl

server = service.lower()
if service == 'upload':
finalUrl = urljoin(url, 'Upload')
elif service == 'paste':
finalUrl = urljoin(url, 'Paste')
return finalUrl

Loading…
Cancel
Save