pyhttp-app 2.0.1__tar.gz → 2.0.2__tar.gz
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.
- {pyhttp_app-2.0.1 → pyhttp_app-2.0.2}/PKG-INFO +27 -65
- {pyhttp_app-2.0.1 → pyhttp_app-2.0.2}/README.md +25 -63
- {pyhttp_app-2.0.1 → pyhttp_app-2.0.2}/pyhttp/__init__.py +2 -2
- {pyhttp_app-2.0.1 → pyhttp_app-2.0.2}/pyhttp/__main__.py +1 -1
- {pyhttp_app-2.0.1 → pyhttp_app-2.0.2}/pyhttp/app.py +1 -1
- {pyhttp_app-2.0.1 → pyhttp_app-2.0.2}/pyhttp/mcp.py +1 -1
- {pyhttp_app-2.0.1 → pyhttp_app-2.0.2}/pyhttp/updater.py +1 -1
- {pyhttp_app-2.0.1 → pyhttp_app-2.0.2}/pyhttp_app.egg-info/PKG-INFO +27 -65
- {pyhttp_app-2.0.1 → pyhttp_app-2.0.2}/pyproject.toml +1 -1
- {pyhttp_app-2.0.1 → pyhttp_app-2.0.2}/LICENSE.md +0 -0
- {pyhttp_app-2.0.1 → pyhttp_app-2.0.2}/pyhttp/assertions.py +0 -0
- {pyhttp_app-2.0.1 → pyhttp_app-2.0.2}/pyhttp/cli.py +0 -0
- {pyhttp_app-2.0.1 → pyhttp_app-2.0.2}/pyhttp/console.py +0 -0
- {pyhttp_app-2.0.1 → pyhttp_app-2.0.2}/pyhttp/curl.py +0 -0
- {pyhttp_app-2.0.1 → pyhttp_app-2.0.2}/pyhttp/db.py +0 -0
- {pyhttp_app-2.0.1 → pyhttp_app-2.0.2}/pyhttp/jsengine.py +0 -0
- {pyhttp_app-2.0.1 → pyhttp_app-2.0.2}/pyhttp/jsonc.py +0 -0
- {pyhttp_app-2.0.1 → pyhttp_app-2.0.2}/pyhttp/mock.py +0 -0
- {pyhttp_app-2.0.1 → pyhttp_app-2.0.2}/pyhttp/monitors.py +0 -0
- {pyhttp_app-2.0.1 → pyhttp_app-2.0.2}/pyhttp/oauth2.py +0 -0
- {pyhttp_app-2.0.1 → pyhttp_app-2.0.2}/pyhttp/openapi.py +0 -0
- {pyhttp_app-2.0.1 → pyhttp_app-2.0.2}/pyhttp/pm.js +0 -0
- {pyhttp_app-2.0.1 → pyhttp_app-2.0.2}/pyhttp/postman.py +0 -0
- {pyhttp_app-2.0.1 → pyhttp_app-2.0.2}/pyhttp/runner.py +0 -0
- {pyhttp_app-2.0.1 → pyhttp_app-2.0.2}/pyhttp/scripts.py +0 -0
- {pyhttp_app-2.0.1 → pyhttp_app-2.0.2}/pyhttp/static/app.js +0 -0
- {pyhttp_app-2.0.1 → pyhttp_app-2.0.2}/pyhttp/static/codegen.js +0 -0
- {pyhttp_app-2.0.1 → pyhttp_app-2.0.2}/pyhttp/static/editor.js +0 -0
- {pyhttp_app-2.0.1 → pyhttp_app-2.0.2}/pyhttp/static/features.css +0 -0
- {pyhttp_app-2.0.1 → pyhttp_app-2.0.2}/pyhttp/static/features.js +0 -0
- {pyhttp_app-2.0.1 → pyhttp_app-2.0.2}/pyhttp/static/index.html +0 -0
- {pyhttp_app-2.0.1 → pyhttp_app-2.0.2}/pyhttp/static/logo.svg +0 -0
- {pyhttp_app-2.0.1 → pyhttp_app-2.0.2}/pyhttp/static/style.css +0 -0
- {pyhttp_app-2.0.1 → pyhttp_app-2.0.2}/pyhttp/static/vendor/codemirror.js +0 -0
- {pyhttp_app-2.0.1 → pyhttp_app-2.0.2}/pyhttp/static/vendor/fonts/Inter-OFL.txt +0 -0
- {pyhttp_app-2.0.1 → pyhttp_app-2.0.2}/pyhttp/static/vendor/fonts/inter-latin-ext-wght-normal.woff2 +0 -0
- {pyhttp_app-2.0.1 → pyhttp_app-2.0.2}/pyhttp/static/vendor/fonts/inter-latin-wght-normal.woff2 +0 -0
- {pyhttp_app-2.0.1 → pyhttp_app-2.0.2}/pyhttp/static/viewer.js +0 -0
- {pyhttp_app-2.0.1 → pyhttp_app-2.0.2}/pyhttp/templating.py +0 -0
- {pyhttp_app-2.0.1 → pyhttp_app-2.0.2}/pyhttp_app.egg-info/SOURCES.txt +0 -0
- {pyhttp_app-2.0.1 → pyhttp_app-2.0.2}/pyhttp_app.egg-info/dependency_links.txt +0 -0
- {pyhttp_app-2.0.1 → pyhttp_app-2.0.2}/pyhttp_app.egg-info/entry_points.txt +0 -0
- {pyhttp_app-2.0.1 → pyhttp_app-2.0.2}/pyhttp_app.egg-info/requires.txt +0 -0
- {pyhttp_app-2.0.1 → pyhttp_app-2.0.2}/pyhttp_app.egg-info/top_level.txt +0 -0
- {pyhttp_app-2.0.1 → pyhttp_app-2.0.2}/setup.cfg +0 -0
- {pyhttp_app-2.0.1 → pyhttp_app-2.0.2}/tests/test_backend.py +0 -0
- {pyhttp_app-2.0.1 → pyhttp_app-2.0.2}/tests/test_integrations.py +0 -0
- {pyhttp_app-2.0.1 → pyhttp_app-2.0.2}/tests/test_mcp.py +0 -0
- {pyhttp_app-2.0.1 → pyhttp_app-2.0.2}/tests/test_ui.py +0 -0
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: pyhttp-app
|
|
3
|
-
Version: 2.0.
|
|
4
|
-
Summary:
|
|
3
|
+
Version: 2.0.2
|
|
4
|
+
Summary: Local API client and alternative to Postman: collection runner, Postman-compatible scripts, mock servers and an MCP server
|
|
5
5
|
Author-email: pyhttp Dev Team <dev@pyhttp.com>
|
|
6
6
|
License: # pyhttp Free License 1.1
|
|
7
7
|
|
|
@@ -147,62 +147,10 @@ Requires-Dist: pyyaml>=6.0
|
|
|
147
147
|
Requires-Dist: mcp>=2
|
|
148
148
|
Dynamic: license-file
|
|
149
149
|
|
|
150
|
-
cd C:\Users\vishv\Documents\www\pyhttp\
|
|
151
|
-
C:\Users\vishv\Documents\www\pyhttp\pyhttp\
|
|
152
|
-
claude --dangerously-skip-permissions
|
|
153
|
-
# todo
|
|
154
|
-
- kill port
|
|
155
|
-
lsof -t -i:8765 | xargs kill -9
|
|
156
|
-
|
|
157
|
-
<!-- - both show waiting while running in parallel -->
|
|
158
|
-
<!-- - pretty/ raw bar with response must not scroll with response - fix that
|
|
159
|
-
- in headers give select all/unselect all button or checkbox
|
|
160
|
-
- auto dropdown in Token from env/global variables
|
|
161
|
-
- if get method gives error show prompt or Tip: that use post or any other method method
|
|
162
|
-
- observed a weird bug that body 1 somehow was doing conflict with body 2, when only sending body 2 getting same error that i must see in body 1 for the response in body 2 can you check this and fix if any such issue can happen -->
|
|
163
|
-
|
|
164
|
-
<!-- - automatic api tester with a timer, where it will send an report of times and alert if failed api api -->
|
|
165
|
-
<!-- - give mcp so this tool data like api body and etc can be filled and managed by ai , make this fully manageable tool by using ai -->
|
|
166
|
-
- Later build feedback form in www /Users/vishvendra/Documents/www/pyhttp.com and app /Users/vishvendra/Documents/www/pyhttp/
|
|
167
|
-
- seo
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
<!-- - update www with all the updates we just made -->
|
|
171
|
-
<!-- - delete all older releases with my name vishvendra singh if possible but keep the release 1.9 and after -->
|
|
172
|
-
<!-- - if response is pushed to bottom by down button to view body the body and and list of bodies component must stretch to the bottm will the response window right now it remains sname, also when click the button to bring the response from bottom to the right it hides body and if i try to click the separator and drag it shows weird behaviour and does not work properly fix these issues and make it better -->
|
|
173
|
-
<!-- - dependent api - like token triggered automatically when any api is sent a call, so fetch token from using token api, where it will have a pm.environment.set(token) something like this - so it will set token in environment automatically and then call the pi - if put in as dependent api in any other api and set a time after which it must trigger automatically - like token has expired time - implement intelligently in a flow -->
|
|
174
|
-
<!-- - remove my name and keep something like - "pyhttp Dev team - From the unknown to the unowned" like this - in tagline and owner etc at all the palces in website and tool in current or next releases -->
|
|
175
|
-
<!-- - lets say if there are multiple bodies in api then in scripts i want to give an option to select from - perform test and Pre-request based on bodies 1 or 2 or 3 etc (name of body) so user can select if same test are to be perfomed for all bodies or different - pre-request and test - for each body - i told you to do this before but not able to see or find this change -->
|
|
176
|
-
<!-- - run with csv - give sample file, also show multiple or single responses in api beside/below api definition or body for each run automatically -->
|
|
177
|
-
<!-- - in current run on right hand side - write name of files in pop when clicked the tab - with little description, right now it is confusing - as user not understanding difference between api.json and api.body.json - do this change quickly and dont spend too much testing on it or build or relese there are more chaning i will be sending then test or do any other process afterward when i tell you -->
|
|
178
|
-
<!-- - highly parallel request without sequence or allow to set in while trying to run on run name and confirmation screen also give button to skip and run directly without giving name -->
|
|
179
|
-
<!-- - make default useragent - pyhttp and version -->
|
|
180
|
-
<!-- - vertical partition compresses the search input box and "run selected" button which does not look good fix that on left hand side - fix ui/ux -->
|
|
181
|
-
<!-- - settings menu seems like falling over each other give spacing and make better ui/ux -->
|
|
182
|
-
<!-- - below button in bottom movies response window, can make this clearer so one can easily know what that button does or any other why make it easy ui/ux -->
|
|
183
|
-
<!-- - put a hamburger menu on left hand side to show hide left hand sidebar -->
|
|
184
|
-
<!-- - when there is an long error from api shown above the json response it adds horizontal scroller, i think you must text wrap that and must not add horizontal scroll in any case -->
|
|
185
|
-
<!-- - tabs like api or body have very little vertical scroll, i think you must not show scroll anywhere instead put tabs above or below - and/or give this setting to set for user -->
|
|
186
|
-
<!-- - rename Tests to scripts and there must be option to select body and apply test to that specific body or all body and separate test can be applied to separate bodies -->
|
|
187
|
-
<!-- work on all of above intelligently and in such a way must be best decision from your research i want to make best http tool as per ui/ux and ease of use point of view -->
|
|
188
|
-
<!-- - also i am thinking to make it free in license for everyone - what do you think - -->
|
|
189
|
-
<!-- - if i click on any other tab it selects all the bodies, but it must save the state like selected body only even when tabs are changes or this app is opened or closed -->
|
|
190
|
-
<!-- - give cancel button in place of sending when sending api call to cancel running call/calls -->
|
|
191
|
-
<!-- - give select and enclose/open javascript with arrow in left beside line numbers -->
|
|
192
|
-
<!-- - ctrl+enter in windows and command+enter must send it api call -->
|
|
193
|
-
<!-- - clicking tabs must not change the box/card size in settings -->
|
|
194
|
-
<!-- - close icon/button foer current/history right side bar -->
|
|
195
|
-
<!-- - open/cose button for response bar, i mean hide it so one can view entire body similar for response there must option to maximize it to view entire response -->
|
|
196
|
-
<!-- - must be able to move tabs left and right -->
|
|
197
|
-
<!-- - check now must show loading icon and show status beside that only -->
|
|
198
|
-
<!-- - current run and history not showing in mac/windows -->
|
|
199
|
-
<!-- - auto release not working -->
|
|
200
|
-
<!-- - instead of pm.test make it ph or py.test which you feel is good, i feel py. is good in Tests
|
|
201
|
-
- pretty is showing too much space after each line in response of json
|
|
202
|
-
- in tests i keep getting error - invalid systax ("<test script>", line 1) and failing in setting any variables -->
|
|
203
150
|
# pyhttp
|
|
204
151
|
|
|
205
|
-
A local
|
|
152
|
+
A local API client and alternative to Postman — it imports Postman collections
|
|
153
|
+
and runs Postman scripts — with a built-in collection runner, in its
|
|
206
154
|
own desktop window. Everything stays on your machine: requests live in a SQLite
|
|
207
155
|
file, every run writes its responses to plain files, and the backend listens
|
|
208
156
|
only on `127.0.0.1`.
|
|
@@ -390,8 +338,11 @@ pyhttp
|
|
|
390
338
|
```
|
|
391
339
|
|
|
392
340
|
On Linux, install the GTK webview bindings first (see *Linux* below) or use
|
|
393
|
-
`pyhttp --browser`. `brew install pyhttp2/pyhttp/pyhttp
|
|
394
|
-
same package through Homebrew (macOS and Linux, Intel and ARM
|
|
341
|
+
`pyhttp --browser`. `brew install pyhttp2/pyhttp/pyhttp` installs the
|
|
342
|
+
same package through Homebrew (macOS and Linux, Intel and ARM; the tap is
|
|
343
|
+
[pyhttp2/homebrew-pyhttp](https://github.com/pyhttp2/homebrew-pyhttp)) — or tap
|
|
344
|
+
once with `brew tap pyhttp2/pyhttp`, after which plain `brew install pyhttp`,
|
|
345
|
+
`brew upgrade pyhttp` and `brew install --cask pyhttp` all work.
|
|
395
346
|
|
|
396
347
|
**Windows**: double-click `run.bat`. The window opens without a console.
|
|
397
348
|
WebView2 ships with Windows 10/11.
|
|
@@ -498,7 +449,7 @@ Packaged builds bundle Python and every dependency, so users just double-click.
|
|
|
498
449
|
|---|---|---|
|
|
499
450
|
| Windows 10/11 | `pyhttp-<version>-windows-x64-setup.exe`: installer (per user, no admin rights, into `%LOCALAPPDATA%\Programs\pyhttp`, Start menu entry, optional desktop icon, uninstaller in *Apps*) | `%APPDATA%\pyhttp` |
|
|
500
451
|
| Windows 10/11 | `pyhttp-<version>-windows-x64.exe`: portable, one file, no install | `%APPDATA%\pyhttp` |
|
|
501
|
-
| macOS 11+ | `brew
|
|
452
|
+
| macOS 11+ | `brew install --cask pyhttp2/pyhttp/pyhttp`, or `pyhttp-<version>-macos-arm64.dmg` (drag pyhttp to Applications) | `~/Library/Application Support/pyhttp` |
|
|
502
453
|
| Ubuntu 22.04+, Debian 12+ | `sudo apt install ./pyhttp-<version>-linux-amd64.deb`: installs to `/usr/lib/pyhttp`, adds `pyhttp` to the PATH and an app-menu entry; uses the distro's GTK and WebKitGTK (pulled in as dependencies) | `~/.local/share/pyhttp` |
|
|
503
454
|
|
|
504
455
|
Running from source keeps using `./data`. In the packaged app, output that would
|
|
@@ -559,10 +510,14 @@ python packaging/bump.py 0.1.2
|
|
|
559
510
|
```
|
|
560
511
|
|
|
561
512
|
That sets `__version__`, commits, creates the tag `v0.1.2` and pushes both. The
|
|
562
|
-
tag run publishes the installer, the portable `.exe`, the `.dmg`, `SHA256SUMS.txt
|
|
563
|
-
the license files
|
|
564
|
-
|
|
565
|
-
|
|
513
|
+
tag run publishes the installer, the portable `.exe`, the `.dmg`, `SHA256SUMS.txt`
|
|
514
|
+
and the license files to this repository's Releases page, uploads `pyhttp-app` to
|
|
515
|
+
PyPI (secret `PYPI_API_TOKEN`), updates the Homebrew tap
|
|
516
|
+
([homebrew-pyhttp](https://github.com/pyhttp2/homebrew-pyhttp): cask + formula)
|
|
517
|
+
and mirrors everything to
|
|
518
|
+
[pyhttp-releases](https://github.com/pyhttp2/pyhttp-releases) so installs from
|
|
519
|
+
before the move keep updating (the mirror and taps need the `RELEASE_TOKEN`
|
|
520
|
+
secret, a fine-grained PAT with Contents: write on those two repositories). The Windows runner installs Inno Setup with Chocolatey when
|
|
566
521
|
it is not already there. The in-app updater refuses a release without `SHA256SUMS.txt`,
|
|
567
522
|
so keep that step in the workflow. A tag whose version differs from `__version__` is refused,
|
|
568
523
|
because the release name, file names and the in-app update check all come from
|
|
@@ -624,11 +579,18 @@ is not allowed, and the name and logo stay with the project. The source code is
|
|
|
624
579
|
published on PyPI as [`pyhttp-app`](https://pypi.org/project/pyhttp-app/)
|
|
625
580
|
so it can be inspected and installed with pip; you may modify your own copy but
|
|
626
581
|
not distribute the changes. The packaged installer, `.exe`, `.dmg` and `.deb`
|
|
627
|
-
builds are published
|
|
628
|
-
[
|
|
582
|
+
builds are published on this repository's
|
|
583
|
+
[Releases](https://github.com/pyhttp2/pyhttp/releases) page and mirrored to
|
|
584
|
+
[pyhttp-releases](https://github.com/pyhttp2/pyhttp-releases), the old home,
|
|
585
|
+
so installs from before the move keep updating.
|
|
629
586
|
Bundled open-source components are listed in
|
|
630
587
|
[THIRD-PARTY-NOTICES.md](THIRD-PARTY-NOTICES.md).
|
|
631
588
|
|
|
589
|
+
Postman is a trademark of Postman, Inc. pyhttp is an independent project and is
|
|
590
|
+
not affiliated with or endorsed by Postman, Inc.; the name is used only to
|
|
591
|
+
describe compatibility (importing Postman collections, running Postman-style
|
|
592
|
+
scripts).
|
|
593
|
+
|
|
632
594
|
The app itself stays free. If paid extras ever appear, they will be optional
|
|
633
595
|
add-ons, services or support under their own terms, never a restriction on who
|
|
634
596
|
may use pyhttp.
|
|
@@ -1,59 +1,7 @@
|
|
|
1
|
-
cd C:\Users\vishv\Documents\www\pyhttp\
|
|
2
|
-
C:\Users\vishv\Documents\www\pyhttp\pyhttp\
|
|
3
|
-
claude --dangerously-skip-permissions
|
|
4
|
-
# todo
|
|
5
|
-
- kill port
|
|
6
|
-
lsof -t -i:8765 | xargs kill -9
|
|
7
|
-
|
|
8
|
-
<!-- - both show waiting while running in parallel -->
|
|
9
|
-
<!-- - pretty/ raw bar with response must not scroll with response - fix that
|
|
10
|
-
- in headers give select all/unselect all button or checkbox
|
|
11
|
-
- auto dropdown in Token from env/global variables
|
|
12
|
-
- if get method gives error show prompt or Tip: that use post or any other method method
|
|
13
|
-
- observed a weird bug that body 1 somehow was doing conflict with body 2, when only sending body 2 getting same error that i must see in body 1 for the response in body 2 can you check this and fix if any such issue can happen -->
|
|
14
|
-
|
|
15
|
-
<!-- - automatic api tester with a timer, where it will send an report of times and alert if failed api api -->
|
|
16
|
-
<!-- - give mcp so this tool data like api body and etc can be filled and managed by ai , make this fully manageable tool by using ai -->
|
|
17
|
-
- Later build feedback form in www /Users/vishvendra/Documents/www/pyhttp.com and app /Users/vishvendra/Documents/www/pyhttp/
|
|
18
|
-
- seo
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
<!-- - update www with all the updates we just made -->
|
|
22
|
-
<!-- - delete all older releases with my name vishvendra singh if possible but keep the release 1.9 and after -->
|
|
23
|
-
<!-- - if response is pushed to bottom by down button to view body the body and and list of bodies component must stretch to the bottm will the response window right now it remains sname, also when click the button to bring the response from bottom to the right it hides body and if i try to click the separator and drag it shows weird behaviour and does not work properly fix these issues and make it better -->
|
|
24
|
-
<!-- - dependent api - like token triggered automatically when any api is sent a call, so fetch token from using token api, where it will have a pm.environment.set(token) something like this - so it will set token in environment automatically and then call the pi - if put in as dependent api in any other api and set a time after which it must trigger automatically - like token has expired time - implement intelligently in a flow -->
|
|
25
|
-
<!-- - remove my name and keep something like - "pyhttp Dev team - From the unknown to the unowned" like this - in tagline and owner etc at all the palces in website and tool in current or next releases -->
|
|
26
|
-
<!-- - lets say if there are multiple bodies in api then in scripts i want to give an option to select from - perform test and Pre-request based on bodies 1 or 2 or 3 etc (name of body) so user can select if same test are to be perfomed for all bodies or different - pre-request and test - for each body - i told you to do this before but not able to see or find this change -->
|
|
27
|
-
<!-- - run with csv - give sample file, also show multiple or single responses in api beside/below api definition or body for each run automatically -->
|
|
28
|
-
<!-- - in current run on right hand side - write name of files in pop when clicked the tab - with little description, right now it is confusing - as user not understanding difference between api.json and api.body.json - do this change quickly and dont spend too much testing on it or build or relese there are more chaning i will be sending then test or do any other process afterward when i tell you -->
|
|
29
|
-
<!-- - highly parallel request without sequence or allow to set in while trying to run on run name and confirmation screen also give button to skip and run directly without giving name -->
|
|
30
|
-
<!-- - make default useragent - pyhttp and version -->
|
|
31
|
-
<!-- - vertical partition compresses the search input box and "run selected" button which does not look good fix that on left hand side - fix ui/ux -->
|
|
32
|
-
<!-- - settings menu seems like falling over each other give spacing and make better ui/ux -->
|
|
33
|
-
<!-- - below button in bottom movies response window, can make this clearer so one can easily know what that button does or any other why make it easy ui/ux -->
|
|
34
|
-
<!-- - put a hamburger menu on left hand side to show hide left hand sidebar -->
|
|
35
|
-
<!-- - when there is an long error from api shown above the json response it adds horizontal scroller, i think you must text wrap that and must not add horizontal scroll in any case -->
|
|
36
|
-
<!-- - tabs like api or body have very little vertical scroll, i think you must not show scroll anywhere instead put tabs above or below - and/or give this setting to set for user -->
|
|
37
|
-
<!-- - rename Tests to scripts and there must be option to select body and apply test to that specific body or all body and separate test can be applied to separate bodies -->
|
|
38
|
-
<!-- work on all of above intelligently and in such a way must be best decision from your research i want to make best http tool as per ui/ux and ease of use point of view -->
|
|
39
|
-
<!-- - also i am thinking to make it free in license for everyone - what do you think - -->
|
|
40
|
-
<!-- - if i click on any other tab it selects all the bodies, but it must save the state like selected body only even when tabs are changes or this app is opened or closed -->
|
|
41
|
-
<!-- - give cancel button in place of sending when sending api call to cancel running call/calls -->
|
|
42
|
-
<!-- - give select and enclose/open javascript with arrow in left beside line numbers -->
|
|
43
|
-
<!-- - ctrl+enter in windows and command+enter must send it api call -->
|
|
44
|
-
<!-- - clicking tabs must not change the box/card size in settings -->
|
|
45
|
-
<!-- - close icon/button foer current/history right side bar -->
|
|
46
|
-
<!-- - open/cose button for response bar, i mean hide it so one can view entire body similar for response there must option to maximize it to view entire response -->
|
|
47
|
-
<!-- - must be able to move tabs left and right -->
|
|
48
|
-
<!-- - check now must show loading icon and show status beside that only -->
|
|
49
|
-
<!-- - current run and history not showing in mac/windows -->
|
|
50
|
-
<!-- - auto release not working -->
|
|
51
|
-
<!-- - instead of pm.test make it ph or py.test which you feel is good, i feel py. is good in Tests
|
|
52
|
-
- pretty is showing too much space after each line in response of json
|
|
53
|
-
- in tests i keep getting error - invalid systax ("<test script>", line 1) and failing in setting any variables -->
|
|
54
1
|
# pyhttp
|
|
55
2
|
|
|
56
|
-
A local
|
|
3
|
+
A local API client and alternative to Postman — it imports Postman collections
|
|
4
|
+
and runs Postman scripts — with a built-in collection runner, in its
|
|
57
5
|
own desktop window. Everything stays on your machine: requests live in a SQLite
|
|
58
6
|
file, every run writes its responses to plain files, and the backend listens
|
|
59
7
|
only on `127.0.0.1`.
|
|
@@ -241,8 +189,11 @@ pyhttp
|
|
|
241
189
|
```
|
|
242
190
|
|
|
243
191
|
On Linux, install the GTK webview bindings first (see *Linux* below) or use
|
|
244
|
-
`pyhttp --browser`. `brew install pyhttp2/pyhttp/pyhttp
|
|
245
|
-
same package through Homebrew (macOS and Linux, Intel and ARM
|
|
192
|
+
`pyhttp --browser`. `brew install pyhttp2/pyhttp/pyhttp` installs the
|
|
193
|
+
same package through Homebrew (macOS and Linux, Intel and ARM; the tap is
|
|
194
|
+
[pyhttp2/homebrew-pyhttp](https://github.com/pyhttp2/homebrew-pyhttp)) — or tap
|
|
195
|
+
once with `brew tap pyhttp2/pyhttp`, after which plain `brew install pyhttp`,
|
|
196
|
+
`brew upgrade pyhttp` and `brew install --cask pyhttp` all work.
|
|
246
197
|
|
|
247
198
|
**Windows**: double-click `run.bat`. The window opens without a console.
|
|
248
199
|
WebView2 ships with Windows 10/11.
|
|
@@ -349,7 +300,7 @@ Packaged builds bundle Python and every dependency, so users just double-click.
|
|
|
349
300
|
|---|---|---|
|
|
350
301
|
| Windows 10/11 | `pyhttp-<version>-windows-x64-setup.exe`: installer (per user, no admin rights, into `%LOCALAPPDATA%\Programs\pyhttp`, Start menu entry, optional desktop icon, uninstaller in *Apps*) | `%APPDATA%\pyhttp` |
|
|
351
302
|
| Windows 10/11 | `pyhttp-<version>-windows-x64.exe`: portable, one file, no install | `%APPDATA%\pyhttp` |
|
|
352
|
-
| macOS 11+ | `brew
|
|
303
|
+
| macOS 11+ | `brew install --cask pyhttp2/pyhttp/pyhttp`, or `pyhttp-<version>-macos-arm64.dmg` (drag pyhttp to Applications) | `~/Library/Application Support/pyhttp` |
|
|
353
304
|
| Ubuntu 22.04+, Debian 12+ | `sudo apt install ./pyhttp-<version>-linux-amd64.deb`: installs to `/usr/lib/pyhttp`, adds `pyhttp` to the PATH and an app-menu entry; uses the distro's GTK and WebKitGTK (pulled in as dependencies) | `~/.local/share/pyhttp` |
|
|
354
305
|
|
|
355
306
|
Running from source keeps using `./data`. In the packaged app, output that would
|
|
@@ -410,10 +361,14 @@ python packaging/bump.py 0.1.2
|
|
|
410
361
|
```
|
|
411
362
|
|
|
412
363
|
That sets `__version__`, commits, creates the tag `v0.1.2` and pushes both. The
|
|
413
|
-
tag run publishes the installer, the portable `.exe`, the `.dmg`, `SHA256SUMS.txt
|
|
414
|
-
the license files
|
|
415
|
-
|
|
416
|
-
|
|
364
|
+
tag run publishes the installer, the portable `.exe`, the `.dmg`, `SHA256SUMS.txt`
|
|
365
|
+
and the license files to this repository's Releases page, uploads `pyhttp-app` to
|
|
366
|
+
PyPI (secret `PYPI_API_TOKEN`), updates the Homebrew tap
|
|
367
|
+
([homebrew-pyhttp](https://github.com/pyhttp2/homebrew-pyhttp): cask + formula)
|
|
368
|
+
and mirrors everything to
|
|
369
|
+
[pyhttp-releases](https://github.com/pyhttp2/pyhttp-releases) so installs from
|
|
370
|
+
before the move keep updating (the mirror and taps need the `RELEASE_TOKEN`
|
|
371
|
+
secret, a fine-grained PAT with Contents: write on those two repositories). The Windows runner installs Inno Setup with Chocolatey when
|
|
417
372
|
it is not already there. The in-app updater refuses a release without `SHA256SUMS.txt`,
|
|
418
373
|
so keep that step in the workflow. A tag whose version differs from `__version__` is refused,
|
|
419
374
|
because the release name, file names and the in-app update check all come from
|
|
@@ -475,11 +430,18 @@ is not allowed, and the name and logo stay with the project. The source code is
|
|
|
475
430
|
published on PyPI as [`pyhttp-app`](https://pypi.org/project/pyhttp-app/)
|
|
476
431
|
so it can be inspected and installed with pip; you may modify your own copy but
|
|
477
432
|
not distribute the changes. The packaged installer, `.exe`, `.dmg` and `.deb`
|
|
478
|
-
builds are published
|
|
479
|
-
[
|
|
433
|
+
builds are published on this repository's
|
|
434
|
+
[Releases](https://github.com/pyhttp2/pyhttp/releases) page and mirrored to
|
|
435
|
+
[pyhttp-releases](https://github.com/pyhttp2/pyhttp-releases), the old home,
|
|
436
|
+
so installs from before the move keep updating.
|
|
480
437
|
Bundled open-source components are listed in
|
|
481
438
|
[THIRD-PARTY-NOTICES.md](THIRD-PARTY-NOTICES.md).
|
|
482
439
|
|
|
440
|
+
Postman is a trademark of Postman, Inc. pyhttp is an independent project and is
|
|
441
|
+
not affiliated with or endorsed by Postman, Inc.; the name is used only to
|
|
442
|
+
describe compatibility (importing Postman collections, running Postman-style
|
|
443
|
+
scripts).
|
|
444
|
+
|
|
483
445
|
The app itself stays free. If paid extras ever appear, they will be optional
|
|
484
446
|
add-ons, services or support under their own terms, never a restriction on who
|
|
485
447
|
may use pyhttp.
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
"""pyhttp - a local
|
|
1
|
+
"""pyhttp - a local API client and alternative to Postman, with a collection runner."""
|
|
2
2
|
|
|
3
|
-
__version__ = "2.0.
|
|
3
|
+
__version__ = "2.0.2"
|
|
4
4
|
# sent with every request unless the user sets their own in Settings; the convention is "product/version (+url)"
|
|
5
5
|
USER_AGENT = f"pyhttp/{__version__}"
|
|
6
6
|
__license__ = "pyhttp Free License 1.0 (free for everyone; source not distributed)"
|
|
@@ -189,7 +189,7 @@ def main() -> None:
|
|
|
189
189
|
from . import mcp
|
|
190
190
|
mcp.main(sys.argv[2:], DEFAULT_DATA_DIR)
|
|
191
191
|
return
|
|
192
|
-
parser = argparse.ArgumentParser(prog="pyhttp", description="Local
|
|
192
|
+
parser = argparse.ArgumentParser(prog="pyhttp", description="Local API client (alternative to Postman)",
|
|
193
193
|
epilog="Headless runs for CI: pyhttp run --help")
|
|
194
194
|
mode = parser.add_mutually_exclusive_group()
|
|
195
195
|
mode.add_argument("--browser", action="store_true", help="open the UI in your web browser")
|
|
@@ -24,7 +24,7 @@ from . import (USER_AGENT, __version__, console, curl, db, mock, monitors, oauth
|
|
|
24
24
|
from .templating import build_context, render
|
|
25
25
|
|
|
26
26
|
STATIC_DIR = Path(__file__).parent / "static"
|
|
27
|
-
DEFAULT_RELEASE_REPO = "pyhttp2/pyhttp
|
|
27
|
+
DEFAULT_RELEASE_REPO = "pyhttp2/pyhttp" # public repo whose Releases page holds the .exe/.dmg builds
|
|
28
28
|
try: # written by packaging/build.py so packaged apps know where their releases live
|
|
29
29
|
from ._build import GITHUB_REPO as _BUILT_REPO
|
|
30
30
|
except ImportError: # pragma: no cover - source checkout
|
|
@@ -25,7 +25,7 @@ BODY_LIMIT = 40_000 # characters of a response body per tool result
|
|
|
25
25
|
|
|
26
26
|
server = MCPServer(
|
|
27
27
|
"pyhttp",
|
|
28
|
-
instructions="A local HTTP client (Postman
|
|
28
|
+
instructions="A local HTTP client (alternative to Postman). Requests live in folders, can hold several named "
|
|
29
29
|
"bodies, tests and scripts, and use {{variables}} from the active environment and globals. "
|
|
30
30
|
"send_request/send return the response; run executes many requests in order and reports.",
|
|
31
31
|
)
|
|
@@ -31,7 +31,7 @@ from . import USER_AGENT
|
|
|
31
31
|
FROZEN = bool(getattr(sys, "frozen", False))
|
|
32
32
|
CASK = "pyhttp"
|
|
33
33
|
TAP = "pyhttp2/pyhttp"
|
|
34
|
-
TAP_URL = "https://github.com/pyhttp2/pyhttp
|
|
34
|
+
TAP_URL = "https://github.com/pyhttp2/homebrew-pyhttp"
|
|
35
35
|
SUMS_FILE = "SHA256SUMS.txt"
|
|
36
36
|
SELF_UPDATE_KINDS = ("installer", "portable", "brew")
|
|
37
37
|
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: pyhttp-app
|
|
3
|
-
Version: 2.0.
|
|
4
|
-
Summary:
|
|
3
|
+
Version: 2.0.2
|
|
4
|
+
Summary: Local API client and alternative to Postman: collection runner, Postman-compatible scripts, mock servers and an MCP server
|
|
5
5
|
Author-email: pyhttp Dev Team <dev@pyhttp.com>
|
|
6
6
|
License: # pyhttp Free License 1.1
|
|
7
7
|
|
|
@@ -147,62 +147,10 @@ Requires-Dist: pyyaml>=6.0
|
|
|
147
147
|
Requires-Dist: mcp>=2
|
|
148
148
|
Dynamic: license-file
|
|
149
149
|
|
|
150
|
-
cd C:\Users\vishv\Documents\www\pyhttp\
|
|
151
|
-
C:\Users\vishv\Documents\www\pyhttp\pyhttp\
|
|
152
|
-
claude --dangerously-skip-permissions
|
|
153
|
-
# todo
|
|
154
|
-
- kill port
|
|
155
|
-
lsof -t -i:8765 | xargs kill -9
|
|
156
|
-
|
|
157
|
-
<!-- - both show waiting while running in parallel -->
|
|
158
|
-
<!-- - pretty/ raw bar with response must not scroll with response - fix that
|
|
159
|
-
- in headers give select all/unselect all button or checkbox
|
|
160
|
-
- auto dropdown in Token from env/global variables
|
|
161
|
-
- if get method gives error show prompt or Tip: that use post or any other method method
|
|
162
|
-
- observed a weird bug that body 1 somehow was doing conflict with body 2, when only sending body 2 getting same error that i must see in body 1 for the response in body 2 can you check this and fix if any such issue can happen -->
|
|
163
|
-
|
|
164
|
-
<!-- - automatic api tester with a timer, where it will send an report of times and alert if failed api api -->
|
|
165
|
-
<!-- - give mcp so this tool data like api body and etc can be filled and managed by ai , make this fully manageable tool by using ai -->
|
|
166
|
-
- Later build feedback form in www /Users/vishvendra/Documents/www/pyhttp.com and app /Users/vishvendra/Documents/www/pyhttp/
|
|
167
|
-
- seo
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
<!-- - update www with all the updates we just made -->
|
|
171
|
-
<!-- - delete all older releases with my name vishvendra singh if possible but keep the release 1.9 and after -->
|
|
172
|
-
<!-- - if response is pushed to bottom by down button to view body the body and and list of bodies component must stretch to the bottm will the response window right now it remains sname, also when click the button to bring the response from bottom to the right it hides body and if i try to click the separator and drag it shows weird behaviour and does not work properly fix these issues and make it better -->
|
|
173
|
-
<!-- - dependent api - like token triggered automatically when any api is sent a call, so fetch token from using token api, where it will have a pm.environment.set(token) something like this - so it will set token in environment automatically and then call the pi - if put in as dependent api in any other api and set a time after which it must trigger automatically - like token has expired time - implement intelligently in a flow -->
|
|
174
|
-
<!-- - remove my name and keep something like - "pyhttp Dev team - From the unknown to the unowned" like this - in tagline and owner etc at all the palces in website and tool in current or next releases -->
|
|
175
|
-
<!-- - lets say if there are multiple bodies in api then in scripts i want to give an option to select from - perform test and Pre-request based on bodies 1 or 2 or 3 etc (name of body) so user can select if same test are to be perfomed for all bodies or different - pre-request and test - for each body - i told you to do this before but not able to see or find this change -->
|
|
176
|
-
<!-- - run with csv - give sample file, also show multiple or single responses in api beside/below api definition or body for each run automatically -->
|
|
177
|
-
<!-- - in current run on right hand side - write name of files in pop when clicked the tab - with little description, right now it is confusing - as user not understanding difference between api.json and api.body.json - do this change quickly and dont spend too much testing on it or build or relese there are more chaning i will be sending then test or do any other process afterward when i tell you -->
|
|
178
|
-
<!-- - highly parallel request without sequence or allow to set in while trying to run on run name and confirmation screen also give button to skip and run directly without giving name -->
|
|
179
|
-
<!-- - make default useragent - pyhttp and version -->
|
|
180
|
-
<!-- - vertical partition compresses the search input box and "run selected" button which does not look good fix that on left hand side - fix ui/ux -->
|
|
181
|
-
<!-- - settings menu seems like falling over each other give spacing and make better ui/ux -->
|
|
182
|
-
<!-- - below button in bottom movies response window, can make this clearer so one can easily know what that button does or any other why make it easy ui/ux -->
|
|
183
|
-
<!-- - put a hamburger menu on left hand side to show hide left hand sidebar -->
|
|
184
|
-
<!-- - when there is an long error from api shown above the json response it adds horizontal scroller, i think you must text wrap that and must not add horizontal scroll in any case -->
|
|
185
|
-
<!-- - tabs like api or body have very little vertical scroll, i think you must not show scroll anywhere instead put tabs above or below - and/or give this setting to set for user -->
|
|
186
|
-
<!-- - rename Tests to scripts and there must be option to select body and apply test to that specific body or all body and separate test can be applied to separate bodies -->
|
|
187
|
-
<!-- work on all of above intelligently and in such a way must be best decision from your research i want to make best http tool as per ui/ux and ease of use point of view -->
|
|
188
|
-
<!-- - also i am thinking to make it free in license for everyone - what do you think - -->
|
|
189
|
-
<!-- - if i click on any other tab it selects all the bodies, but it must save the state like selected body only even when tabs are changes or this app is opened or closed -->
|
|
190
|
-
<!-- - give cancel button in place of sending when sending api call to cancel running call/calls -->
|
|
191
|
-
<!-- - give select and enclose/open javascript with arrow in left beside line numbers -->
|
|
192
|
-
<!-- - ctrl+enter in windows and command+enter must send it api call -->
|
|
193
|
-
<!-- - clicking tabs must not change the box/card size in settings -->
|
|
194
|
-
<!-- - close icon/button foer current/history right side bar -->
|
|
195
|
-
<!-- - open/cose button for response bar, i mean hide it so one can view entire body similar for response there must option to maximize it to view entire response -->
|
|
196
|
-
<!-- - must be able to move tabs left and right -->
|
|
197
|
-
<!-- - check now must show loading icon and show status beside that only -->
|
|
198
|
-
<!-- - current run and history not showing in mac/windows -->
|
|
199
|
-
<!-- - auto release not working -->
|
|
200
|
-
<!-- - instead of pm.test make it ph or py.test which you feel is good, i feel py. is good in Tests
|
|
201
|
-
- pretty is showing too much space after each line in response of json
|
|
202
|
-
- in tests i keep getting error - invalid systax ("<test script>", line 1) and failing in setting any variables -->
|
|
203
150
|
# pyhttp
|
|
204
151
|
|
|
205
|
-
A local
|
|
152
|
+
A local API client and alternative to Postman — it imports Postman collections
|
|
153
|
+
and runs Postman scripts — with a built-in collection runner, in its
|
|
206
154
|
own desktop window. Everything stays on your machine: requests live in a SQLite
|
|
207
155
|
file, every run writes its responses to plain files, and the backend listens
|
|
208
156
|
only on `127.0.0.1`.
|
|
@@ -390,8 +338,11 @@ pyhttp
|
|
|
390
338
|
```
|
|
391
339
|
|
|
392
340
|
On Linux, install the GTK webview bindings first (see *Linux* below) or use
|
|
393
|
-
`pyhttp --browser`. `brew install pyhttp2/pyhttp/pyhttp
|
|
394
|
-
same package through Homebrew (macOS and Linux, Intel and ARM
|
|
341
|
+
`pyhttp --browser`. `brew install pyhttp2/pyhttp/pyhttp` installs the
|
|
342
|
+
same package through Homebrew (macOS and Linux, Intel and ARM; the tap is
|
|
343
|
+
[pyhttp2/homebrew-pyhttp](https://github.com/pyhttp2/homebrew-pyhttp)) — or tap
|
|
344
|
+
once with `brew tap pyhttp2/pyhttp`, after which plain `brew install pyhttp`,
|
|
345
|
+
`brew upgrade pyhttp` and `brew install --cask pyhttp` all work.
|
|
395
346
|
|
|
396
347
|
**Windows**: double-click `run.bat`. The window opens without a console.
|
|
397
348
|
WebView2 ships with Windows 10/11.
|
|
@@ -498,7 +449,7 @@ Packaged builds bundle Python and every dependency, so users just double-click.
|
|
|
498
449
|
|---|---|---|
|
|
499
450
|
| Windows 10/11 | `pyhttp-<version>-windows-x64-setup.exe`: installer (per user, no admin rights, into `%LOCALAPPDATA%\Programs\pyhttp`, Start menu entry, optional desktop icon, uninstaller in *Apps*) | `%APPDATA%\pyhttp` |
|
|
500
451
|
| Windows 10/11 | `pyhttp-<version>-windows-x64.exe`: portable, one file, no install | `%APPDATA%\pyhttp` |
|
|
501
|
-
| macOS 11+ | `brew
|
|
452
|
+
| macOS 11+ | `brew install --cask pyhttp2/pyhttp/pyhttp`, or `pyhttp-<version>-macos-arm64.dmg` (drag pyhttp to Applications) | `~/Library/Application Support/pyhttp` |
|
|
502
453
|
| Ubuntu 22.04+, Debian 12+ | `sudo apt install ./pyhttp-<version>-linux-amd64.deb`: installs to `/usr/lib/pyhttp`, adds `pyhttp` to the PATH and an app-menu entry; uses the distro's GTK and WebKitGTK (pulled in as dependencies) | `~/.local/share/pyhttp` |
|
|
503
454
|
|
|
504
455
|
Running from source keeps using `./data`. In the packaged app, output that would
|
|
@@ -559,10 +510,14 @@ python packaging/bump.py 0.1.2
|
|
|
559
510
|
```
|
|
560
511
|
|
|
561
512
|
That sets `__version__`, commits, creates the tag `v0.1.2` and pushes both. The
|
|
562
|
-
tag run publishes the installer, the portable `.exe`, the `.dmg`, `SHA256SUMS.txt
|
|
563
|
-
the license files
|
|
564
|
-
|
|
565
|
-
|
|
513
|
+
tag run publishes the installer, the portable `.exe`, the `.dmg`, `SHA256SUMS.txt`
|
|
514
|
+
and the license files to this repository's Releases page, uploads `pyhttp-app` to
|
|
515
|
+
PyPI (secret `PYPI_API_TOKEN`), updates the Homebrew tap
|
|
516
|
+
([homebrew-pyhttp](https://github.com/pyhttp2/homebrew-pyhttp): cask + formula)
|
|
517
|
+
and mirrors everything to
|
|
518
|
+
[pyhttp-releases](https://github.com/pyhttp2/pyhttp-releases) so installs from
|
|
519
|
+
before the move keep updating (the mirror and taps need the `RELEASE_TOKEN`
|
|
520
|
+
secret, a fine-grained PAT with Contents: write on those two repositories). The Windows runner installs Inno Setup with Chocolatey when
|
|
566
521
|
it is not already there. The in-app updater refuses a release without `SHA256SUMS.txt`,
|
|
567
522
|
so keep that step in the workflow. A tag whose version differs from `__version__` is refused,
|
|
568
523
|
because the release name, file names and the in-app update check all come from
|
|
@@ -624,11 +579,18 @@ is not allowed, and the name and logo stay with the project. The source code is
|
|
|
624
579
|
published on PyPI as [`pyhttp-app`](https://pypi.org/project/pyhttp-app/)
|
|
625
580
|
so it can be inspected and installed with pip; you may modify your own copy but
|
|
626
581
|
not distribute the changes. The packaged installer, `.exe`, `.dmg` and `.deb`
|
|
627
|
-
builds are published
|
|
628
|
-
[
|
|
582
|
+
builds are published on this repository's
|
|
583
|
+
[Releases](https://github.com/pyhttp2/pyhttp/releases) page and mirrored to
|
|
584
|
+
[pyhttp-releases](https://github.com/pyhttp2/pyhttp-releases), the old home,
|
|
585
|
+
so installs from before the move keep updating.
|
|
629
586
|
Bundled open-source components are listed in
|
|
630
587
|
[THIRD-PARTY-NOTICES.md](THIRD-PARTY-NOTICES.md).
|
|
631
588
|
|
|
589
|
+
Postman is a trademark of Postman, Inc. pyhttp is an independent project and is
|
|
590
|
+
not affiliated with or endorsed by Postman, Inc.; the name is used only to
|
|
591
|
+
describe compatibility (importing Postman collections, running Postman-style
|
|
592
|
+
scripts).
|
|
593
|
+
|
|
632
594
|
The app itself stays free. If paid extras ever appear, they will be optional
|
|
633
595
|
add-ons, services or support under their own terms, never a restriction on who
|
|
634
596
|
may use pyhttp.
|
|
@@ -11,7 +11,7 @@ build-backend = "setuptools.build_meta"
|
|
|
11
11
|
|
|
12
12
|
[project]
|
|
13
13
|
name = "pyhttp-app"
|
|
14
|
-
description = "
|
|
14
|
+
description = "Local API client and alternative to Postman: collection runner, Postman-compatible scripts, mock servers and an MCP server"
|
|
15
15
|
readme = "README.md"
|
|
16
16
|
requires-python = ">=3.10"
|
|
17
17
|
license = { file = "LICENSE.md" }
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{pyhttp_app-2.0.1 → pyhttp_app-2.0.2}/pyhttp/static/vendor/fonts/inter-latin-ext-wght-normal.woff2
RENAMED
|
File without changes
|
{pyhttp_app-2.0.1 → pyhttp_app-2.0.2}/pyhttp/static/vendor/fonts/inter-latin-wght-normal.woff2
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|