diff --git a/setup.cfg b/setup.cfg index 94a39915..ecc9d55b 100644 --- a/setup.cfg +++ b/setup.cfg @@ -1,4 +1,35 @@ -[tool:pytest] +[metadata] +name = Radicale +# When the version is updated, a new section in the CHANGELOG.md file must be +# added too. +version = 3.dev +author = Guillaume Ayoub +author_email = guillaume.ayoub@kozea.fr +license = GNU GPL v3 +description = CalDAV and CardDAV Server +keywords = calendar, addressbook, CalDAV, CardDAV +url = https://radicale.org/ +long_description = file: README.md +long_description_content_type = text/markdown +classifiers = + Development Status :: 5 - Production/Stable + Environment :: Console + Environment :: Web Environment + Intended Audience :: End Users/Desktop + Intended Audience :: Information Technology + License :: OSI Approved :: GNU General Public License (GPL) + Operating System :: OS Independent + Programming Language :: Python :: 3 + Programming Language :: Python :: 3.8 + Programming Language :: Python :: 3.9 + Programming Language :: Python :: 3.10 + Programming Language :: Python :: 3.11 + Programming Language :: Python :: 3.12 + Programming Language :: Python :: 3.13 + Programming Language :: Python :: Implementation :: CPython + Programming Language :: Python :: Implementation :: PyPy + Topic :: Office/Business :: Groupware +platforms = Any [tox:tox] min_version = 4.0 @@ -12,16 +43,36 @@ deps = pytest-cov commands = pytest -r s --cov --cov-report=term --cov-report=xml . +[options] +packages = find: +install_requires = + defusedxml + passlib + vobject>=0.9.6 + python-dateutil>=2.7.3 + pika>=1.1.0 +python_requires = >=3.8.0 + [testenv:flake8] deps = flake8==7.1.0 commands = flake8 . skip_install = True +[options.packages.find] +exclude = *.tests; *.tests.*; tests.*; tests + +[options.entry_points] +console_scripts = radicale = radicale.__main__:run + [testenv:isort] deps = isort==5.13.2 commands = isort --check --diff . skip_install = True +[options.extras_require] +test = pytest>=7; waitress; bcrypt +bcrypt = bcrypt + [testenv:mypy] deps = mypy==1.11.0 commands = mypy . @@ -31,6 +82,23 @@ skip_install = True known_standard_library = _dummy_thread,_thread,abc,aifc,argparse,array,ast,asynchat,asyncio,asyncore,atexit,audioop,base64,bdb,binascii,binhex,bisect,builtins,bz2,cProfile,calendar,cgi,cgitb,chunk,cmath,cmd,code,codecs,codeop,collections,colorsys,compileall,concurrent,configparser,contextlib,contextvars,copy,copyreg,crypt,csv,ctypes,curses,dataclasses,datetime,dbm,decimal,difflib,dis,distutils,doctest,dummy_threading,email,encodings,ensurepip,enum,errno,faulthandler,fcntl,filecmp,fileinput,fnmatch,formatter,fpectl,fractions,ftplib,functools,gc,getopt,getpass,gettext,glob,grp,gzip,hashlib,heapq,hmac,html,http,imaplib,imghdr,imp,importlib,inspect,io,ipaddress,itertools,json,keyword,lib2to3,linecache,locale,logging,lzma,macpath,mailbox,mailcap,marshal,math,mimetypes,mmap,modulefinder,msilib,msvcrt,multiprocessing,netrc,nis,nntplib,ntpath,numbers,operator,optparse,os,ossaudiodev,parser,pathlib,pdb,pickle,pickletools,pipes,pkgutil,platform,plistlib,poplib,posix,posixpath,pprint,profile,pstats,pty,pwd,py_compile,pyclbr,pydoc,queue,quopri,random,re,readline,reprlib,resource,rlcompleter,runpy,sched,secrets,select,selectors,shelve,shlex,shutil,signal,site,smtpd,smtplib,sndhdr,socket,socketserver,spwd,sqlite3,sre,sre_compile,sre_constants,sre_parse,ssl,stat,statistics,string,stringprep,struct,subprocess,sunau,symbol,symtable,sys,sysconfig,syslog,tabnanny,tarfile,telnetlib,tempfile,termios,test,textwrap,threading,time,timeit,tkinter,token,tokenize,trace,traceback,tracemalloc,tty,turtle,turtledemo,types,typing,unicodedata,unittest,urllib,uu,uuid,venv,warnings,wave,weakref,webbrowser,winreg,winsound,wsgiref,xdrlib,xml,xmlrpc,zipapp,zipfile,zipimport,zlib known_third_party = defusedxml,passlib,pkg_resources,pytest,vobject +[options.package_data] +radicale = + web/internal_data/css/icon.png + web/internal_data/css/loading.svg + web/internal_data/css/logo.svg + web/internal_data/css/main.css + web/internal_data/css/icons/delete.svg + web/internal_data/css/icons/download.svg + web/internal_data/css/icons/edit.svg + web/internal_data/css/icons/new.svg + web/internal_data/css/icons/upload.svg + web/internal_data/fn.js + web/internal_data/index.html + py.typed + + + [flake8] # Only enable default tests (https://github.com/PyCQA/flake8/issues/790#issuecomment-812823398) # DNE: DOES-NOT-EXIST diff --git a/setup.py b/setup.py index 68e36398..f5571a2b 100644 --- a/setup.py +++ b/setup.py @@ -15,67 +15,7 @@ # You should have received a copy of the GNU General Public License # along with Radicale. If not, see . -from setuptools import find_packages, setup +from setuptools import setup -# When the version is updated, a new section in the CHANGELOG.md file must be -# added too. -VERSION = "3.dev" -with open("README.md", encoding="utf-8") as f: - long_description = f.read() -web_files = ["web/internal_data/css/icon.png", - "web/internal_data/css/loading.svg", - "web/internal_data/css/logo.svg", - "web/internal_data/css/main.css", - "web/internal_data/css/icons/delete.svg", - "web/internal_data/css/icons/download.svg", - "web/internal_data/css/icons/edit.svg", - "web/internal_data/css/icons/new.svg", - "web/internal_data/css/icons/upload.svg", - "web/internal_data/fn.js", - "web/internal_data/index.html"] - -install_requires = ["defusedxml", "passlib", "vobject>=0.9.6", - "python-dateutil>=2.7.3", - "pika>=1.1.0", - ] -bcrypt_requires = ["bcrypt"] -test_requires = ["pytest>=7", "waitress", *bcrypt_requires] - -setup( - name="Radicale", - version=VERSION, - description="CalDAV and CardDAV Server", - long_description=long_description, - long_description_content_type="text/markdown", - author="Guillaume Ayoub", - author_email="guillaume.ayoub@kozea.fr", - url="https://radicale.org/", - license="GNU GPL v3", - platforms="Any", - packages=find_packages( - exclude=["*.tests", "*.tests.*", "tests.*", "tests"]), - package_data={"radicale": [*web_files, "py.typed"]}, - entry_points={"console_scripts": ["radicale = radicale.__main__:run"]}, - install_requires=install_requires, - extras_require={"test": test_requires, "bcrypt": bcrypt_requires}, - keywords=["calendar", "addressbook", "CalDAV", "CardDAV"], - python_requires=">=3.8.0", - classifiers=[ - "Development Status :: 5 - Production/Stable", - "Environment :: Console", - "Environment :: Web Environment", - "Intended Audience :: End Users/Desktop", - "Intended Audience :: Information Technology", - "License :: OSI Approved :: GNU General Public License (GPL)", - "Operating System :: OS Independent", - "Programming Language :: Python :: 3", - "Programming Language :: Python :: 3.8", - "Programming Language :: Python :: 3.9", - "Programming Language :: Python :: 3.10", - "Programming Language :: Python :: 3.11", - "Programming Language :: Python :: 3.12", - "Programming Language :: Python :: 3.13", - "Programming Language :: Python :: Implementation :: CPython", - "Programming Language :: Python :: Implementation :: PyPy", - "Topic :: Office/Business :: Groupware"]) +setup()