cavisson-pythonagent 0.0.1__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (180) hide show
  1. cavisson_pythonagent-0.0.1.dist-info/METADATA +32 -0
  2. cavisson_pythonagent-0.0.1.dist-info/RECORD +180 -0
  3. cavisson_pythonagent-0.0.1.dist-info/WHEEL +5 -0
  4. cavisson_pythonagent-0.0.1.dist-info/licenses/LICENSE +19 -0
  5. cavisson_pythonagent-0.0.1.dist-info/top_level.txt +1 -0
  6. pythonagent/__init__.py +22 -0
  7. pythonagent/agent/__init__.py +219 -0
  8. pythonagent/agent/internal/__init__.py +1 -0
  9. pythonagent/agent/internal/agent.py +1651 -0
  10. pythonagent/agent/internal/framesinfo.py +152 -0
  11. pythonagent/agent/internal/heap_dump.py +39 -0
  12. pythonagent/agent/internal/intercept_module.py +70 -0
  13. pythonagent/agent/internal/logs.py +122 -0
  14. pythonagent/agent/internal/metadata/__init__.py +0 -0
  15. pythonagent/agent/internal/metadata/agent_meta_data.py +276 -0
  16. pythonagent/agent/internal/proc_compat.py +75 -0
  17. pythonagent/agent/internal/profile.py +47 -0
  18. pythonagent/agent/internal/provider.py +83 -0
  19. pythonagent/agent/internal/thread_dump.py +85 -0
  20. pythonagent/agent/internal/udp.py +245 -0
  21. pythonagent/agent/internal/udp_message.py +800 -0
  22. pythonagent/agent/probes/Instrumentation/__init__.py +340 -0
  23. pythonagent/agent/probes/Instrumentation/find.py +243 -0
  24. pythonagent/agent/probes/Instrumentation/module_version_resolver.py +155 -0
  25. pythonagent/agent/probes/Instrumentation/new_parser.py +64 -0
  26. pythonagent/agent/probes/Instrumentation/parser.py +129 -0
  27. pythonagent/agent/probes/__init__.py +219 -0
  28. pythonagent/agent/probes/base.py +303 -0
  29. pythonagent/agent/probes/cache/__init__.py +51 -0
  30. pythonagent/agent/probes/cache/redis.py +119 -0
  31. pythonagent/agent/probes/cache/redis_asyncio.py +83 -0
  32. pythonagent/agent/probes/coroutines/__init__.py +1 -0
  33. pythonagent/agent/probes/coroutines/asyncio.py +63 -0
  34. pythonagent/agent/probes/elasticdb/__init__.py +7 -0
  35. pythonagent/agent/probes/elasticdb/aelastic.py +54 -0
  36. pythonagent/agent/probes/frameworks/__init__.py +27 -0
  37. pythonagent/agent/probes/frameworks/agentprofiler.py +105 -0
  38. pythonagent/agent/probes/frameworks/aiohttp_web.py +155 -0
  39. pythonagent/agent/probes/frameworks/aisess.py +151 -0
  40. pythonagent/agent/probes/frameworks/asgi.py +340 -0
  41. pythonagent/agent/probes/frameworks/bottle.py +27 -0
  42. pythonagent/agent/probes/frameworks/cherry.py +25 -0
  43. pythonagent/agent/probes/frameworks/django.py +128 -0
  44. pythonagent/agent/probes/frameworks/falcon.py +21 -0
  45. pythonagent/agent/probes/frameworks/fastapi.py +35 -0
  46. pythonagent/agent/probes/frameworks/flask.py +30 -0
  47. pythonagent/agent/probes/frameworks/pyramid.py +56 -0
  48. pythonagent/agent/probes/frameworks/test.py +108 -0
  49. pythonagent/agent/probes/frameworks/tornado_async_web.py +117 -0
  50. pythonagent/agent/probes/frameworks/tornado_web.py +133 -0
  51. pythonagent/agent/probes/frameworks/wsgi.py +353 -0
  52. pythonagent/agent/probes/grpc/__init__.py +76 -0
  53. pythonagent/agent/probes/grpc/client_interceptor.py +132 -0
  54. pythonagent/agent/probes/grpc/server_interceptor.py +129 -0
  55. pythonagent/agent/probes/havoc/__init__.py +0 -0
  56. pythonagent/agent/probes/havoc/custom_memory_stress.py +186 -0
  57. pythonagent/agent/probes/havoc/custom_thread_stress.py +187 -0
  58. pythonagent/agent/probes/havoc/havoc_constants.py +218 -0
  59. pythonagent/agent/probes/havoc/havoc_manager.py +981 -0
  60. pythonagent/agent/probes/http/__init__.py +49 -0
  61. pythonagent/agent/probes/http/aiohttp_client.py +59 -0
  62. pythonagent/agent/probes/http/boto.py +12 -0
  63. pythonagent/agent/probes/http/httplib.py +110 -0
  64. pythonagent/agent/probes/http/httpx_client.py +116 -0
  65. pythonagent/agent/probes/http/requests.py +15 -0
  66. pythonagent/agent/probes/http/tornado_httpclient.py +85 -0
  67. pythonagent/agent/probes/http/urllib3.py +16 -0
  68. pythonagent/agent/probes/langchain/__init__.py +21 -0
  69. pythonagent/agent/probes/langchain/base_tool.py +95 -0
  70. pythonagent/agent/probes/langchain/langchain_community.py +136 -0
  71. pythonagent/agent/probes/langchain/langchain_core.py +32 -0
  72. pythonagent/agent/probes/langchain/langchain_openai.py +110 -0
  73. pythonagent/agent/probes/logging/__init__.py +106 -0
  74. pythonagent/agent/probes/message_brokers/__init__.py +4 -0
  75. pythonagent/agent/probes/message_brokers/pika.py +126 -0
  76. pythonagent/agent/probes/mongodb/__init__.py +6 -0
  77. pythonagent/agent/probes/mongodb/pymongo.py +286 -0
  78. pythonagent/agent/probes/openai/__init__.py +3 -0
  79. pythonagent/agent/probes/openai/openai.py +797 -0
  80. pythonagent/agent/probes/span.py +101 -0
  81. pythonagent/agent/probes/sql/__init__.py +13 -0
  82. pythonagent/agent/probes/sql/botocores3.py +51 -0
  83. pythonagent/agent/probes/sql/dbapi.py +285 -0
  84. pythonagent/agent/probes/sql/dynamodb.py +90 -0
  85. pythonagent/agent/probes/sql/mysql_connector.py +24 -0
  86. pythonagent/agent/probes/sql/mysql_connector_cext.py +24 -0
  87. pythonagent/agent/probes/sql/mysqldb.py +43 -0
  88. pythonagent/agent/probes/sql/psycopg2.py +174 -0
  89. pythonagent/agent/probes/sql/pymysql.py +25 -0
  90. pythonagent/bootstrap/__init__.py +0 -0
  91. pythonagent/bootstrap/cav_gunicorn.py +26 -0
  92. pythonagent/bootstrap/cavagent_lambda_wrapper.py +291 -0
  93. pythonagent/bootstrap/run.py +47 -0
  94. pythonagent/bootstrap/sitecustomize.py +287 -0
  95. pythonagent/cavisson/netdiagnostics/CavAgent/instrumentationprofile.json +26 -0
  96. pythonagent/cavisson/netdiagnostics/CavAgent/interceptor_points.txt +29 -0
  97. pythonagent/cavisson/netdiagnostics/python/CavAgent/instrumentationprofile.json +42 -0
  98. pythonagent/cavisson/netdiagnostics/python/CavAgent/interceptor_points.txt +29 -0
  99. pythonagent/cavisson/netdiagnostics/python/config/ndsettings.conf +6 -0
  100. pythonagent/config.py +279 -0
  101. pythonagent/find.py +72 -0
  102. pythonagent/find_mod_cls_name.py +54 -0
  103. pythonagent/lang.py +131 -0
  104. pythonagent/lib.py +91 -0
  105. pythonagent/main/__init__.py +0 -0
  106. pythonagent/main/pytrace/__init__.py +79 -0
  107. pythonagent/main/pytrace/commands/__init__.py +0 -0
  108. pythonagent/main/pytrace/commands/auto_discovery.py +25 -0
  109. pythonagent/main/pytrace/commands/run.py +401 -0
  110. pythonagent/main/pytrace/pytrace.py +133 -0
  111. pythonagent/main/wsgi.py +6 -0
  112. pythonagent/main.py +27 -0
  113. pythonagent/run.py +46 -0
  114. pythonagent/sqins.py +8 -0
  115. pythonagent/test.py +73 -0
  116. pythonagent/utils.py +168 -0
  117. pythonagent/vendor/__init__.py +0 -0
  118. pythonagent/vendor/pympler/__init__.py +1 -0
  119. pythonagent/vendor/pympler/asizeof.py +2810 -0
  120. pythonagent/vendor/pympler/charts.py +62 -0
  121. pythonagent/vendor/pympler/classtracker.py +590 -0
  122. pythonagent/vendor/pympler/classtracker_stats.py +780 -0
  123. pythonagent/vendor/pympler/garbagegraph.py +80 -0
  124. pythonagent/vendor/pympler/mprofile.py +97 -0
  125. pythonagent/vendor/pympler/muppy.py +275 -0
  126. pythonagent/vendor/pympler/panels.py +115 -0
  127. pythonagent/vendor/pympler/process.py +238 -0
  128. pythonagent/vendor/pympler/py.typed +0 -0
  129. pythonagent/vendor/pympler/refbrowser.py +451 -0
  130. pythonagent/vendor/pympler/refgraph.py +350 -0
  131. pythonagent/vendor/pympler/summary.py +321 -0
  132. pythonagent/vendor/pympler/tracker.py +267 -0
  133. pythonagent/vendor/pympler/util/__init__.py +0 -0
  134. pythonagent/vendor/pympler/util/bottle.py +3809 -0
  135. pythonagent/vendor/pympler/util/compat.py +23 -0
  136. pythonagent/vendor/pympler/util/stringutils.py +77 -0
  137. pythonagent/vendor/pympler/web.py +346 -0
  138. pythonagent/vendor/werkzeug/__init__.py +20 -0
  139. pythonagent/vendor/werkzeug/_compat.py +228 -0
  140. pythonagent/vendor/werkzeug/_internal.py +473 -0
  141. pythonagent/vendor/werkzeug/_reloader.py +341 -0
  142. pythonagent/vendor/werkzeug/datastructures.py +3120 -0
  143. pythonagent/vendor/werkzeug/debug/__init__.py +498 -0
  144. pythonagent/vendor/werkzeug/debug/console.py +218 -0
  145. pythonagent/vendor/werkzeug/debug/repr.py +297 -0
  146. pythonagent/vendor/werkzeug/debug/tbtools.py +628 -0
  147. pythonagent/vendor/werkzeug/exceptions.py +829 -0
  148. pythonagent/vendor/werkzeug/filesystem.py +64 -0
  149. pythonagent/vendor/werkzeug/formparser.py +584 -0
  150. pythonagent/vendor/werkzeug/http.py +1307 -0
  151. pythonagent/vendor/werkzeug/local.py +420 -0
  152. pythonagent/vendor/werkzeug/middleware/__init__.py +25 -0
  153. pythonagent/vendor/werkzeug/middleware/dispatcher.py +66 -0
  154. pythonagent/vendor/werkzeug/middleware/http_proxy.py +219 -0
  155. pythonagent/vendor/werkzeug/middleware/lint.py +408 -0
  156. pythonagent/vendor/werkzeug/middleware/profiler.py +132 -0
  157. pythonagent/vendor/werkzeug/middleware/proxy_fix.py +169 -0
  158. pythonagent/vendor/werkzeug/middleware/shared_data.py +293 -0
  159. pythonagent/vendor/werkzeug/posixemulation.py +117 -0
  160. pythonagent/vendor/werkzeug/routing.py +2210 -0
  161. pythonagent/vendor/werkzeug/security.py +249 -0
  162. pythonagent/vendor/werkzeug/serving.py +1117 -0
  163. pythonagent/vendor/werkzeug/test.py +1123 -0
  164. pythonagent/vendor/werkzeug/testapp.py +241 -0
  165. pythonagent/vendor/werkzeug/urls.py +1138 -0
  166. pythonagent/vendor/werkzeug/useragents.py +202 -0
  167. pythonagent/vendor/werkzeug/utils.py +778 -0
  168. pythonagent/vendor/werkzeug/wrappers/__init__.py +36 -0
  169. pythonagent/vendor/werkzeug/wrappers/accept.py +50 -0
  170. pythonagent/vendor/werkzeug/wrappers/auth.py +33 -0
  171. pythonagent/vendor/werkzeug/wrappers/base_request.py +673 -0
  172. pythonagent/vendor/werkzeug/wrappers/base_response.py +700 -0
  173. pythonagent/vendor/werkzeug/wrappers/common_descriptors.py +341 -0
  174. pythonagent/vendor/werkzeug/wrappers/cors.py +100 -0
  175. pythonagent/vendor/werkzeug/wrappers/etag.py +304 -0
  176. pythonagent/vendor/werkzeug/wrappers/json.py +145 -0
  177. pythonagent/vendor/werkzeug/wrappers/request.py +49 -0
  178. pythonagent/vendor/werkzeug/wrappers/response.py +84 -0
  179. pythonagent/vendor/werkzeug/wrappers/user_agent.py +14 -0
  180. pythonagent/vendor/werkzeug/wsgi.py +1000 -0
@@ -0,0 +1,202 @@
1
+ # -*- coding: utf-8 -*-
2
+ """
3
+ werkzeug.useragents
4
+ ~~~~~~~~~~~~~~~~~~~
5
+
6
+ This module provides a helper to inspect user agent strings. This module
7
+ is far from complete but should work for most of the currently available
8
+ browsers.
9
+
10
+
11
+ :copyright: 2007 Pallets
12
+ :license: BSD-3-Clause
13
+ """
14
+ import re
15
+
16
+
17
+ class UserAgentParser(object):
18
+ """A simple user agent parser. Used by the `UserAgent`."""
19
+
20
+ platforms = (
21
+ (" cros ", "chromeos"),
22
+ ("iphone|ios", "iphone"),
23
+ ("ipad", "ipad"),
24
+ (r"darwin|mac|os\s*x", "macos"),
25
+ ("win", "windows"),
26
+ (r"android", "android"),
27
+ ("netbsd", "netbsd"),
28
+ ("openbsd", "openbsd"),
29
+ ("freebsd", "freebsd"),
30
+ ("dragonfly", "dragonflybsd"),
31
+ ("(sun|i86)os", "solaris"),
32
+ (r"x11|lin(\b|ux)?", "linux"),
33
+ (r"nintendo\s+wii", "wii"),
34
+ ("irix", "irix"),
35
+ ("hp-?ux", "hpux"),
36
+ ("aix", "aix"),
37
+ ("sco|unix_sv", "sco"),
38
+ ("bsd", "bsd"),
39
+ ("amiga", "amiga"),
40
+ ("blackberry|playbook", "blackberry"),
41
+ ("symbian", "symbian"),
42
+ )
43
+ browsers = (
44
+ ("googlebot", "google"),
45
+ ("msnbot", "msn"),
46
+ ("yahoo", "yahoo"),
47
+ ("ask jeeves", "ask"),
48
+ (r"aol|america\s+online\s+browser", "aol"),
49
+ (r"opera|opr", "opera"),
50
+ ("edge", "edge"),
51
+ ("chrome|crios", "chrome"),
52
+ ("seamonkey", "seamonkey"),
53
+ ("firefox|firebird|phoenix|iceweasel", "firefox"),
54
+ ("galeon", "galeon"),
55
+ ("safari|version", "safari"),
56
+ ("webkit", "webkit"),
57
+ ("camino", "camino"),
58
+ ("konqueror", "konqueror"),
59
+ ("k-meleon", "kmeleon"),
60
+ ("netscape", "netscape"),
61
+ (r"msie|microsoft\s+internet\s+explorer|trident/.+? rv:", "msie"),
62
+ ("lynx", "lynx"),
63
+ ("links", "links"),
64
+ ("Baiduspider", "baidu"),
65
+ ("bingbot", "bing"),
66
+ ("mozilla", "mozilla"),
67
+ )
68
+
69
+ _browser_version_re = r"(?:%s)[/\sa-z(]*(\d+[.\da-z]+)?"
70
+ _language_re = re.compile(
71
+ r"(?:;\s*|\s+)(\b\w{2}\b(?:-\b\w{2}\b)?)\s*;|"
72
+ r"(?:\(|\[|;)\s*(\b\w{2}\b(?:-\b\w{2}\b)?)\s*(?:\]|\)|;)"
73
+ )
74
+
75
+ def __init__(self):
76
+ self.platforms = [(b, re.compile(a, re.I)) for a, b in self.platforms]
77
+ self.browsers = [
78
+ (b, re.compile(self._browser_version_re % a, re.I))
79
+ for a, b in self.browsers
80
+ ]
81
+
82
+ def __call__(self, user_agent):
83
+ for platform, regex in self.platforms: # noqa: B007
84
+ match = regex.search(user_agent)
85
+ if match is not None:
86
+ break
87
+ else:
88
+ platform = None
89
+ for browser, regex in self.browsers: # noqa: B007
90
+ match = regex.search(user_agent)
91
+ if match is not None:
92
+ version = match.group(1)
93
+ break
94
+ else:
95
+ browser = version = None
96
+ match = self._language_re.search(user_agent)
97
+ if match is not None:
98
+ language = match.group(1) or match.group(2)
99
+ else:
100
+ language = None
101
+ return platform, browser, version, language
102
+
103
+
104
+ class UserAgent(object):
105
+ """Represents a user agent. Pass it a WSGI environment or a user agent
106
+ string and you can inspect some of the details from the user agent
107
+ string via the attributes. The following attributes exist:
108
+
109
+ .. attribute:: string
110
+
111
+ the raw user agent string
112
+
113
+ .. attribute:: platform
114
+
115
+ the browser platform. ``None`` if not recognized.
116
+ The following platforms are currently recognized:
117
+
118
+ - `aix`
119
+ - `amiga`
120
+ - `android`
121
+ - `blackberry`
122
+ - `bsd`
123
+ - `chromeos`
124
+ - `dragonflybsd`
125
+ - `freebsd`
126
+ - `hpux`
127
+ - `ipad`
128
+ - `iphone`
129
+ - `irix`
130
+ - `linux`
131
+ - `macos`
132
+ - `netbsd`
133
+ - `openbsd`
134
+ - `sco`
135
+ - `solaris`
136
+ - `symbian`
137
+ - `wii`
138
+ - `windows`
139
+
140
+ .. attribute:: browser
141
+
142
+ the name of the browser. ``None`` if not recognized.
143
+ The following browsers are currently recognized:
144
+
145
+ - `aol` *
146
+ - `ask` *
147
+ - `baidu` *
148
+ - `bing` *
149
+ - `camino`
150
+ - `chrome`
151
+ - `edge`
152
+ - `firefox`
153
+ - `galeon`
154
+ - `google` *
155
+ - `kmeleon`
156
+ - `konqueror`
157
+ - `links`
158
+ - `lynx`
159
+ - `mozilla`
160
+ - `msie`
161
+ - `msn`
162
+ - `netscape`
163
+ - `opera`
164
+ - `safari`
165
+ - `seamonkey`
166
+ - `webkit`
167
+ - `yahoo` *
168
+
169
+ (Browsers marked with a star (``*``) are crawlers.)
170
+
171
+ .. attribute:: version
172
+
173
+ the version of the browser. ``None`` if not recognized.
174
+
175
+ .. attribute:: language
176
+
177
+ the language of the browser. ``None`` if not recognized.
178
+ """
179
+
180
+ _parser = UserAgentParser()
181
+
182
+ def __init__(self, environ_or_string):
183
+ if isinstance(environ_or_string, dict):
184
+ environ_or_string = environ_or_string.get("HTTP_USER_AGENT", "")
185
+ self.string = environ_or_string
186
+ self.platform, self.browser, self.version, self.language = self._parser(
187
+ environ_or_string
188
+ )
189
+
190
+ def to_header(self):
191
+ return self.string
192
+
193
+ def __str__(self):
194
+ return self.string
195
+
196
+ def __nonzero__(self):
197
+ return bool(self.browser)
198
+
199
+ __bool__ = __nonzero__
200
+
201
+ def __repr__(self):
202
+ return "<%s %r/%s>" % (self.__class__.__name__, self.browser, self.version)