Initial commit
This commit is contained in:
commit
95a80636c8
5
.gitignore
vendored
Normal file
5
.gitignore
vendored
Normal file
@ -0,0 +1,5 @@
|
|||||||
|
.*/
|
||||||
|
__pycache__/
|
||||||
|
/build/
|
||||||
|
/dist/
|
||||||
|
/*.egg-info/
|
21
LICENSE
Normal file
21
LICENSE
Normal file
@ -0,0 +1,21 @@
|
|||||||
|
MIT License
|
||||||
|
|
||||||
|
Copyright (c) 2024 AUTHOR <email@example.com>
|
||||||
|
|
||||||
|
Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||||
|
of this software and associated documentation files (the "Software"), to deal
|
||||||
|
in the Software without restriction, including without limitation the rights
|
||||||
|
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||||
|
copies of the Software, and to permit persons to whom the Software is
|
||||||
|
furnished to do so, subject to the following conditions:
|
||||||
|
|
||||||
|
The above copyright notice and this permission notice shall be included in all
|
||||||
|
copies or substantial portions of the Software.
|
||||||
|
|
||||||
|
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||||
|
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||||
|
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||||
|
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||||
|
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||||
|
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||||
|
SOFTWARE.
|
1
README.md
Normal file
1
README.md
Normal file
@ -0,0 +1 @@
|
|||||||
|
# [package-name](https://dev.lirent.ru/python/package-name)
|
27
RELEASE-NOTES.md
Normal file
27
RELEASE-NOTES.md
Normal file
@ -0,0 +1,27 @@
|
|||||||
|
## 0.0.0 (1970-01-01)
|
||||||
|
|
||||||
|
> Description
|
||||||
|
|
||||||
|
### Upgrade Steps
|
||||||
|
*
|
||||||
|
*
|
||||||
|
|
||||||
|
### Breaking Changes
|
||||||
|
*
|
||||||
|
*
|
||||||
|
|
||||||
|
### New Features
|
||||||
|
*
|
||||||
|
*
|
||||||
|
|
||||||
|
### Bug Fixes
|
||||||
|
*
|
||||||
|
*
|
||||||
|
|
||||||
|
### Performance Improvements
|
||||||
|
*
|
||||||
|
*
|
||||||
|
|
||||||
|
### Other Changes
|
||||||
|
*
|
||||||
|
*
|
1
package/__init__.py
Normal file
1
package/__init__.py
Normal file
@ -0,0 +1 @@
|
|||||||
|
# This software is licensed by the MIT License (MIT), see LICENSE file
|
0
requirements.txt
Normal file
0
requirements.txt
Normal file
99
setup.py
Normal file
99
setup.py
Normal file
@ -0,0 +1,99 @@
|
|||||||
|
# This software is licensed by the MIT License (MIT), see LICENSE file
|
||||||
|
|
||||||
|
# Use it with: `python setup.py sdist bdist_wheel`
|
||||||
|
|
||||||
|
import os
|
||||||
|
|
||||||
|
from pathlib import Path
|
||||||
|
from setuptools import setup, find_packages
|
||||||
|
|
||||||
|
AUTHOR = 'Author'
|
||||||
|
AUTHOR_EMAIL = 'email@example.com'
|
||||||
|
PROJECT_URL = 'https://dev.lirent.ru/python/package-name'
|
||||||
|
PROJECT_REPO = f'{PROJECT_URL}/src/branch/master'
|
||||||
|
PROJECT_DOCS = f'{PROJECT_REPO}/README.md'
|
||||||
|
DESCRIPTION = 'Package description'
|
||||||
|
KEYWORDS = ''
|
||||||
|
PYTHON_VERSION = "3.11"
|
||||||
|
|
||||||
|
CLASSIFIERS = [
|
||||||
|
f'Programming Language :: Python :: {PYTHON_VERSION}',
|
||||||
|
'License :: OSI Approved :: MIT License',
|
||||||
|
'Operating System :: OS Independent',
|
||||||
|
'Framework :: Django :: 5.0'
|
||||||
|
]
|
||||||
|
|
||||||
|
|
||||||
|
CWD = Path(__file__).resolve().parent
|
||||||
|
|
||||||
|
|
||||||
|
def get_package_name():
|
||||||
|
excludes = [('.git', '.git'), ('test', '')]
|
||||||
|
candidates = []
|
||||||
|
|
||||||
|
with open(CWD / '.gitignore', 'r', -1, 'utf8') as f:
|
||||||
|
for line in f.readlines():
|
||||||
|
line = line.strip()
|
||||||
|
if line.endswith('/'):
|
||||||
|
line = line[1:-1] if line.startswith('/') else line[:-1]
|
||||||
|
if line.count('*') == 1:
|
||||||
|
line = line.split('*')
|
||||||
|
elif line.count('*') > 1:
|
||||||
|
raise AttributeError(f'unexpected value in .gitignore: {line}/')
|
||||||
|
else:
|
||||||
|
line = (line, line)
|
||||||
|
excludes.append(line)
|
||||||
|
|
||||||
|
for instance in os.listdir(CWD):
|
||||||
|
if os.path.isdir(CWD / instance):
|
||||||
|
exclude = False
|
||||||
|
for x in excludes:
|
||||||
|
if instance.startswith(x[0]) and instance.endswith(x[1]):
|
||||||
|
exclude = True
|
||||||
|
break
|
||||||
|
if not exclude:
|
||||||
|
candidates.append(instance)
|
||||||
|
if len(candidates) != 1:
|
||||||
|
raise AttributeError('package name cannot be determined')
|
||||||
|
else:
|
||||||
|
return candidates[0]
|
||||||
|
|
||||||
|
|
||||||
|
def readme():
|
||||||
|
with open(CWD / 'README.md', 'r', -1, 'utf8') as f:
|
||||||
|
return f.read()
|
||||||
|
|
||||||
|
|
||||||
|
def version():
|
||||||
|
with open(CWD / 'RELEASE-NOTES.md', 'r', -1, 'utf8') as f:
|
||||||
|
for line in f.readlines():
|
||||||
|
if line.startswith('## '):
|
||||||
|
return line[2:].strip().split(' ')[0]
|
||||||
|
raise AttributeError('version not found')
|
||||||
|
|
||||||
|
|
||||||
|
def requirements():
|
||||||
|
with open(CWD / 'requirements.txt', 'r', -1, 'utf8') as f:
|
||||||
|
return [line.strip() for line in f.readlines() if line.strip()]
|
||||||
|
|
||||||
|
|
||||||
|
setup(
|
||||||
|
name=get_package_name(),
|
||||||
|
version=version(),
|
||||||
|
author=AUTHOR,
|
||||||
|
author_email=AUTHOR_EMAIL,
|
||||||
|
description=DESCRIPTION,
|
||||||
|
long_description=readme(),
|
||||||
|
long_description_content_type='text/markdown',
|
||||||
|
url=PROJECT_URL,
|
||||||
|
packages=find_packages(),
|
||||||
|
install_requires=requirements(),
|
||||||
|
classifiers=CLASSIFIERS,
|
||||||
|
keywords=KEYWORDS,
|
||||||
|
project_urls={
|
||||||
|
'homepage': PROJECT_URL,
|
||||||
|
'repository': PROJECT_REPO,
|
||||||
|
'documentation': PROJECT_DOCS
|
||||||
|
},
|
||||||
|
python_requires=f'>={PYTHON_VERSION}'
|
||||||
|
)
|
Loading…
Reference in New Issue
Block a user