-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathsetup.py
92 lines (68 loc) · 2.35 KB
/
setup.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
"""
Scute
-----
Scute is a Python version of the excellent PHP small Dependency Injection Container.
The code is merely a port of Pimple 1.1 (easier to implement), with the exception that services are shared by default
(as in last versions of Pimple)
````````````
Save in a hello.py:
.. code:: python
from scute import Container
container = Container()
container['param'] = 'world'
container['service_one'] = lambda cont: 'hello ' + cont['param']
container.extend('service_one', lambda hi, cont: hi+'!')
container['scuter'] = container.protect(lambda input_text: input_text.replace('WORLD', 'SCUTE'))
def upper_cased(cont: Container):
hello_text = cont['service_one']
return hello_text.upper()
container['upper_cased'] = upper_cased
if __name__ == '__main__':
upper_cased_content = container['upper_cased']
scuter = container['scuter']
print(scuter(upper_cased_content))
`````````````````
And run it:
.. code:: bash
$ pip install scutes
$ python hello.py
prints 'HELLO SCUTE!'
"""
# 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.md'), encoding='utf-8') as f:
long_description = f.read()
setup(
name='scute',
version='1.0.3',
description='A small Dependency Injection Container, ported from PHP\'s Pimple',
long_description=long_description,
long_description_content_type="text/markdown",
url='https://github.com/DrBenton/scute',
author='Olivier Philippon',
author_email='olivier@rougemine.com',
license='MIT',
# See https://pypi.python.org/pypi?%3Aaction=list_classifiers
classifiers=[
'Development Status :: 4 - Beta',
'Intended Audience :: Developers',
'License :: OSI Approved :: MIT License',
'Programming Language :: Python :: 3.6',
],
keywords='Dependency injection',
packages=['scute'],
package_dir={'scute': 'scute'},
install_requires=[],
python_requires='>=3.6',
extras_require={
'dev': [],
'test': ['pytest', 'pylint'],
},
setup_requires=['pytest-runner', 'pytest-pylint'],
tests_require=['pytest', 'pylint'],
)