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
Hashes for ebay_rest-0.0.8-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | ecc45fe4d6e7e6762a72d333f0a9d7d0583f6b00eaa5e13063a7cf1db3185660 |
|
MD5 | c0c1c1e35bed18475692922fb24824b1 |
|
BLAKE2b-256 | 718ccb749f9e77b09a798aa2282b9ff1f5bbc545a467a47b0faa4e1c6d0b1d8e |