Wraps the eBay REST APIs.
Project description
ebay_rest
A tread-safe Python 3 pip package that conveniently wraps eBay’s REST APIs.
Installation
Use the package manager pip to install ebay_rest.
pip install ebay_rest # Use pip3 if your computer also has Python 2 installed.
If you are one of the few people who want ebay_rest to get user tokens, do the following.
Install Chrome.
pip install selenium # Use pip3 if your computer also has Python 2 installed.
Install Webdriver, aka Chromedriver, for your version of Chrome .
Here is a method for installing Webdriver/Chromedriver on MacOS and tweaking security to permit it.
Install HomeBrew
brew install chromedriver
cd /usr/local/Caskroom/chromedriver
cd to the subdirectory that matches your Chrome version, e.g. 91.0.4472.101
xattr -d com.apple.quarantine chromedriver
Setup
Follow the instructions here.
Usage
from ebay_rest import API, DateTime, Error, Reference
print(f"eBay's official date and time is {DateTime.to_string(DateTime.now())}.\n")
print("All valid eBay global id values, also known as site ids.")
print(Reference.get_global_id_values(), '\n')
try:
api = API(application='production_1', user='production_1', header='US')
except Error as error:
print(f'Error {error.number} is {error.reason} {error.detail}.\n')
else:
try:
print("The five least expensive iPhone things now for sale on-eBay:")
for item in api.buy_browse_search(q='iPhone', sort='price', limit=5):
print(f"item id: {item['item_id']} {item['item_web_url']}")
except Error as error:
print(f'Error {error.number} is {error.reason} {error.detail}.\n')
else:
pass
print("\nClass documentation:")
print(help(API)) # Over a hundred methods are available!
print(help(DateTime))
print(help(Error))
print(help(Reference))
FAQ | Frequently Asked Questions
Question: How are API results organized?
Answer:
- Elemental information is stored in dates, integers, strings and other basic built-in types.
- Dictionaries contain related elements.
- Lists contain information organized repetitively; expect zero or more contents.
- Dicts and Lists may be nested.
- eBay classifies data as optional or mandatory. Optional elements, dicts or lists are omitted. Manditories have a None value.
Q: How to make API calls faster?
A: Prioritized, do the first things first.
- Reuse the API object.
- Some calls have filtering options; omit unneeded data.
- When the call returns a list, make the call in a "for" loop.
- Use threading to make calls in parallel but don't exhaust RAM.
- Use multiprocessing. -- Multiprocessing support is a future goal. -- A safe workaround is to concurrently run copies of your program and divide the work among each.
- Switch to a faster internet connection.
- Switch to computer with faster cores.
Q: How are paged calls/results handled?
A: A simple generator is implemented.
- To be clear, "Paging" is eBay's term for repeating a call while advancing a record offset to get all records.
- eBay documentation has the word "Page" in the return type of paging calls.
- Do NOT supply a record "offset" parameter when making a paging call.
- The "limit" parameter is repurposed to control how many records from the entire set you want.
- To get all possible records, don't supply a limit.
- eBay imposes a hard limit on some calls, typically 10,000 records. Use filters to try and keep below the limit. Use try-except to handle going over.
- Avoid exhausting memory by making the call within a "for" loop.
Contributing
- Pull requests are welcome. For major changes, please open an issue first to discuss what you would like to change.
- Follow Uncle Bob's SOLID principles; see a text description & video tutorial.
- Note the error number guide documented in the Error class definition.
- Please make sure to update tests as appropriate.
Legal
- MIT licence.
- "Python" is a trademark of the Python Software Foundation.
- "eBay" is a trademark of eBay Inc.
- Official endorsement by eBay Inc is not claimed or implied.
- The oath code was derived from this eBay Oauth Python Client.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file ebay_rest-0.0.8.tar.gz.
File metadata
- Download URL: ebay_rest-0.0.8.tar.gz
- Upload date:
- Size: 1.1 MB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/3.4.1 importlib_metadata/4.0.1 pkginfo/1.7.0 requests/2.23.0 requests-toolbelt/0.9.1 tqdm/4.61.0 CPython/3.8.3
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
aafc13d6dbbceaf99777a62283621f90e14bdf5cfa47fed08147c6abe51c6337
|
|
| MD5 |
7b7f275a960afcdb22ff51885cd9eda1
|
|
| BLAKE2b-256 |
3e805cabba6f491f7a24f207d05050d42786a394eef5ba19239a70504ec0c203
|
File details
Details for the file ebay_rest-0.0.8-py3-none-any.whl.
File metadata
- Download URL: ebay_rest-0.0.8-py3-none-any.whl
- Upload date:
- Size: 2.3 MB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/3.4.1 importlib_metadata/4.0.1 pkginfo/1.7.0 requests/2.23.0 requests-toolbelt/0.9.1 tqdm/4.61.0 CPython/3.8.3
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
ecc45fe4d6e7e6762a72d333f0a9d7d0583f6b00eaa5e13063a7cf1db3185660
|
|
| MD5 |
c0c1c1e35bed18475692922fb24824b1
|
|
| BLAKE2b-256 |
718ccb749f9e77b09a798aa2282b9ff1f5bbc545a467a47b0faa4e1c6d0b1d8e
|