2022-07-08 13:12:32 +02:00
import os
import re
2022-04-07 21:03:53 +02:00
import setuptools
2022-10-03 13:00:13 +02:00
from pathlib import Path
2022-04-07 21:03:53 +02:00
with open ( " README.md " , " r " ) as fh :
long_description = fh . read ( )
2022-07-08 13:12:32 +02:00
def get_version ( ) - > str :
version_file = os . path . join (
os . path . dirname ( __file__ ) , " sbapp " , " main.py "
)
version_file_data = open ( version_file , " rt " , encoding = " utf-8 " ) . read ( )
version_regex = r " (?<=^__version__ = [ ' \" ])[^ ' \" ]+(?=[ ' \" ]$) "
try :
version = re . findall ( version_regex , version_file_data , re . M ) [ 0 ]
return version
except IndexError :
raise ValueError ( f " Unable to find version string in { version_file } . " )
def get_variant ( ) - > str :
version_file = os . path . join (
os . path . dirname ( __file__ ) , " sbapp " , " main.py "
)
version_file_data = open ( version_file , " rt " , encoding = " utf-8 " ) . read ( )
version_regex = r " (?<=^__variant__ = [ ' \" ])[^ ' \" ]+(?=[ ' \" ]$) "
try :
version = re . findall ( version_regex , version_file_data , re . M ) [ 0 ]
return version
except IndexError :
raise ValueError ( f " Unable to find version string in { version_file } . " )
__version__ = get_version ( )
__variant__ = get_variant ( )
2022-10-03 13:00:13 +02:00
def glob_paths ( pattern ) :
out_files = [ ]
src_path = os . path . join ( os . path . dirname ( __file__ ) , " kivymd " )
for root , dirs , files in os . walk ( src_path ) :
for file in files :
if file . endswith ( pattern ) :
filepath = os . path . join ( str ( Path ( * Path ( root ) . parts [ 1 : ] ) ) , file )
out_files . append ( filepath . split ( f " kivymd { os . sep } " ) [ 1 ] )
return out_files
package_data = {
" " : [
" assets/* " ,
2024-01-05 19:50:13 +01:00
" assets/fonts/* " ,
2024-03-26 15:26:24 +01:00
" assets/geoids/* " ,
2022-10-03 13:00:13 +02:00
" kivymd/fonts/* " ,
" kivymd/images/* " ,
" kivymd/* " ,
2023-11-01 01:17:19 +01:00
" mapview/icons/* " ,
2022-10-03 13:00:13 +02:00
* glob_paths ( " .kv " )
]
}
2022-07-08 13:12:32 +02:00
print ( " Packaging Sideband " + __version__ + " " + __variant__ )
2022-04-07 21:03:53 +02:00
setuptools . setup (
2022-07-07 22:16:10 +02:00
name = " sbapp " ,
2022-04-07 21:03:53 +02:00
version = __version__ ,
author = " Mark Qvist " ,
author_email = " mark@unsigned.io " ,
description = " LXMF client for Android, Linux and macOS allowing you to communicate with people or LXMF-compatible systems over Reticulum networks using LoRa, Packet Radio, WiFi, I2P, or anything else Reticulum supports. " ,
long_description = long_description ,
long_description_content_type = " text/markdown " ,
url = " https://unsigned.io/sideband " ,
packages = setuptools . find_packages ( ) ,
2022-10-03 13:00:13 +02:00
package_data = package_data ,
2022-07-13 10:53:07 +02:00
include_package_data = True ,
2022-04-07 21:03:53 +02:00
classifiers = [
" Programming Language :: Python :: 3 " ,
" License :: Other/Proprietary License " ,
" Operating System :: OS Independent " ,
] ,
2024-05-05 14:24:18 +02:00
data_files = [
( ' share/applications ' , [ ' sbapp/assets/io.unsigned.sideband.desktop ' ] ) ,
( ' share/icons/hicolor/512x512/apps ' , [ ' sbapp/assets/io.unsigned.sideband.png ' ] ) ,
] ,
2022-04-07 21:03:53 +02:00
entry_points = {
' console_scripts ' : [
2022-07-07 22:16:10 +02:00
' sideband=sbapp:main.run ' ,
2022-04-07 21:03:53 +02:00
]
} ,
2024-05-18 00:28:20 +02:00
install_requires = [ " rns>=0.7.5 " , " lxmf>=0.4.3 " , " kivy>=2.3.0 " , " plyer " , " pillow>=10.2.0 " , " qrcode " , " materialyoucolor>=2.0.7 " ] ,
2022-10-03 15:15:17 +02:00
extras_require = {
" macos " : [ " pyobjus " ] ,
} ,
2023-11-01 17:29:16 +01:00
python_requires = ' >=3.7 ' ,
2022-04-07 21:03:53 +02:00
)