6363from distutils .errors import CCompilerError , DistutilsExecError , DistutilsPlatformError
6464
6565
66- def newrelic_agent_guess_next_version (tag_version ):
67- if hasattr (tag_version , "tag" ): # For setuptools_scm 7.0+
68- tag_version = tag_version .tag
69-
70- version , _ , _ = str (tag_version ).partition ("+" )
71- version_info = list (map (int , version .split ("." )))
72- if len (version_info ) < 3 :
73- return version
74- version_info [1 ] += 1
75- version_info [2 ] = 0
76- return "." .join (map (str , version_info ))
77-
78-
79- def newrelic_agent_next_version (version ):
80- if version .exact :
81- return version .format_with ("{tag}" )
82- else :
83- return version .format_next_version (newrelic_agent_guess_next_version , fmt = "{guessed}" )
84-
85-
86- script_directory = Path (__file__ ).parent
87-
88- readme_file = script_directory / "README.md"
89- with readme_file .open () as f :
90- readme_file_contents = f .read ()
91-
92- if sys .platform == "win32" and python_version > (2 , 6 ):
66+ if sys .platform == "win32" :
9367 build_ext_errors = (CCompilerError , DistutilsExecError , DistutilsPlatformError , IOError )
9468else :
9569 build_ext_errors = (CCompilerError , DistutilsExecError , DistutilsPlatformError )
@@ -113,83 +87,59 @@ def build_extension(self, ext):
11387 raise BuildExtFailed ()
11488
11589
116- packages = [
117- "newrelic" ,
118- "newrelic.admin" ,
119- "newrelic.api" ,
120- "newrelic.bootstrap" ,
121- "newrelic.common" ,
122- "newrelic.core" ,
123- "newrelic.extras" ,
124- "newrelic.extras.framework_django" ,
125- "newrelic.extras.framework_django.templatetags" ,
126- "newrelic.hooks" ,
127- "newrelic.network" ,
128- "newrelic/packages" ,
129- "newrelic/packages/isort" ,
130- "newrelic/packages/isort/stdlibs" ,
131- "newrelic/packages/urllib3" ,
132- "newrelic/packages/urllib3/util" ,
133- "newrelic/packages/urllib3/contrib" ,
134- "newrelic/packages/urllib3/contrib/_securetransport" ,
135- "newrelic/packages/urllib3/packages" ,
136- "newrelic/packages/urllib3/packages/backports" ,
137- "newrelic/packages/wrapt" ,
138- "newrelic/packages/opentelemetry_proto" ,
139- "newrelic.samplers" ,
140- ]
141-
142- classifiers = [
143- "Development Status :: 5 - Production/Stable" ,
144- "License :: OSI Approved :: Apache Software License" ,
145- "Programming Language :: Python :: 3.7" ,
146- "Programming Language :: Python :: 3.8" ,
147- "Programming Language :: Python :: 3.9" ,
148- "Programming Language :: Python :: 3.10" ,
149- "Programming Language :: Python :: 3.11" ,
150- "Programming Language :: Python :: 3.12" ,
151- "Programming Language :: Python :: 3.13" ,
152- "Programming Language :: Python :: Implementation :: CPython" ,
153- "Programming Language :: Python :: Implementation :: PyPy" ,
154- "Topic :: System :: Monitoring" ,
155- ]
156-
15790kwargs = dict (
15891 name = "newrelic" ,
159- use_scm_version = {
160- "version_scheme" : newrelic_agent_next_version ,
161- "local_scheme" : "no-local-version" ,
162- "git_describe_command" : "git describe --dirty --tags --long --match *.*.*" ,
163- "write_to" : "newrelic/version.txt" ,
164- },
165- setup_requires = ["setuptools_scm>=3.2,<9" ],
166- description = "New Relic Python Agent" ,
167- long_description = readme_file_contents ,
168- long_description_content_type = "text/markdown" ,
169- url = "https://docs.newrelic.com/docs/apm/agents/python-agent/" ,
170- project_urls = {"Source" : "https://github.com/newrelic/newrelic-python-agent" },
171- author = "New Relic" ,
172- author_email = "support@newrelic.com" ,
173- maintainer = "New Relic" ,
174- maintainer_email = "support@newrelic.com" ,
92+ setup_requires = ["setuptools>=61.2" , "setuptools_scm>=6.4,<10" ],
17593 license = "Apache-2.0" ,
176- zip_safe = False ,
177- classifiers = classifiers ,
178- packages = packages ,
179- python_requires = ">=3.7" ,
180- package_data = {
181- "newrelic" : ["newrelic.ini" , "version.txt" , "packages/urllib3/LICENSE.txt" , "common/cacert.pem" , "scripts/azure-prebuild.sh" ],
182- },
183- extras_require = {"infinite-tracing" : ["grpcio" , "protobuf" ]},
18494)
18595
186- if with_setuptools :
187- kwargs ["entry_points" ] = {
188- "console_scripts" : ["newrelic-admin = newrelic.admin:main" ],
189- }
190- else :
96+ if not with_setuptools :
97+ script_directory = os .path .dirname (__file__ )
98+ if not script_directory :
99+ script_directory = os .getcwd ()
100+
101+ readme_file = os .path .join (script_directory , "README.md" )
102+
191103 kwargs ["scripts" ] = ["scripts/newrelic-admin" ]
192104
105+ # Old config that now lives in pyproject.toml
106+ # Preserved here for backwards compatibility with distutils
107+ packages = [
108+ "newrelic" ,
109+ "newrelic.admin" ,
110+ "newrelic.api" ,
111+ "newrelic.bootstrap" ,
112+ "newrelic.common" ,
113+ "newrelic.core" ,
114+ "newrelic.extras" ,
115+ "newrelic.extras.framework_django" ,
116+ "newrelic.extras.framework_django.templatetags" ,
117+ "newrelic.hooks" ,
118+ "newrelic.network" ,
119+ "newrelic.packages" ,
120+ "newrelic.packages.isort" ,
121+ "newrelic.packages.isort.stdlibs" ,
122+ "newrelic.packages.urllib3" ,
123+ "newrelic.packages.urllib3.util" ,
124+ "newrelic.packages.urllib3.contrib" ,
125+ "newrelic.packages.urllib3.contrib._securetransport" ,
126+ "newrelic.packages.urllib3.packages" ,
127+ "newrelic.packages.urllib3.packages.backports" ,
128+ "newrelic.packages.wrapt" ,
129+ "newrelic.packages.opentelemetry_proto" ,
130+ "newrelic.samplers" ,
131+ ]
132+
133+ kwargs .update (dict (
134+ python_requires = ">=3.7" ,
135+ zip_safe = False ,
136+ packages = packages ,
137+ package_data = {
138+ "newrelic" : ["newrelic.ini" , "version.txt" , "packages/urllib3/LICENSE.txt" , "common/cacert.pem" , "scripts/azure-prebuild.sh" ],
139+ },
140+ ))
141+
142+
193143
194144def with_librt ():
195145 try :
@@ -253,9 +203,9 @@ def _run_setup():
253203
254204with_extensions = os .environ .get ("NEW_RELIC_EXTENSIONS" , None )
255205if with_extensions :
256- if with_extensions .lower () == " true" :
206+ if with_extensions .lower () in [ "on" , " true", "1" ] :
257207 with_extensions = True
258- elif with_extensions .lower () == " false" :
208+ elif with_extensions .lower () in [ "off" , " false", "0" ] :
259209 with_extensions = False
260210 else :
261211 with_extensions = None
0 commit comments