GithubHelp home page GithubHelp logo

Comments (12)

jgorset avatar jgorset commented on July 21, 2024

Interesting idea!

Are you thinking something along the lines of...

with requests.settings(path='http://example.org', timeout=10) as r:
    response = r.get('/path/to/file.txt')

...?

from requests.

kennethreitz avatar kennethreitz commented on July 21, 2024

Heh, neat path idea.

I was thinking:

with requests.settings(timeout=10, auth=('a', 'b'), proxies={'http': 'localhost:8080'}):
    requests.get('http://blah.com/', params={'x': 'y'})

from requests.

jgorset avatar jgorset commented on July 21, 2024

either way I think that's awesome.

from requests.

kennethreitz avatar kennethreitz commented on July 21, 2024

Let's do it :)

from requests.

kennethreitz avatar kennethreitz commented on July 21, 2024

Maybe this would be better:

with requests.settings(timeout=10, auth=('a', 'b'), proxies={'http': 'localhost:8080'}) as r:
    r.get('http://blah.com/')

This would escape the threading/processes issues.

from requests.

kennethreitz avatar kennethreitz commented on July 21, 2024

If there's a way to detect if someone's using as r, then I'm all for doing it now. Otherwise, I'm going to think about it for a while.

from requests.

pydanny avatar pydanny commented on July 21, 2024

My thought is always that explicit is better than implicit. And intuitiveness goes along with it. So then are context processors more explicit and are they intuitive?

This does look like a divergence from the intuitive aspect of Requests that I like so much. I can point other newbies at it and they just get it. I'm open to ideas, but keep in mind your audience. Use of context processors could be for advanced users, and be given appropriate documentation.

from requests.

kennethreitz avatar kennethreitz commented on July 21, 2024

Great points.

If I do decide to implement this, it would be supplementary. All of the functions will accept the same paramaters they do now as well.

from requests.

kennethreitz avatar kennethreitz commented on July 21, 2024

Maybe I'll hold off on this for now.

Currently, you can do the following

>>> with requests.settings(verbose=sys.stderr):
...    requests.get('http://httpbin.org/ip')
2011-06-23T21:23:18.422726   GET   http://httpbin.org/ip
<Response [200]>

>>> requests.get('http://httpbin.org/ip')
<Response [200]>

As an alternative to:

>>> requests.settings.verbose=sys.stderr
>>> requests.get('http://httpbin.org/ip')
2011-06-23T21:23:18.422726   GET   http://httpbin.org/ip
<Response [200]>

>>> requests.settings.verbose=None
>>> requests.get('http://httpbin.org/ip')
<Response [200]>

I love this.

Maybe, it would just be best to move proxies into the settings module instead of being required to be passed into each request function for now.

from requests.

kennethreitz avatar kennethreitz commented on July 21, 2024

Decided: current settings singleton use is a non-issue because request.settings should only manage (supplementarily) all-encompassing settings (timeouts, proxies, etc).

Auth Management still needs to be rethought.

from requests.

kennethreitz avatar kennethreitz commented on July 21, 2024

See #75 for Re: Proxy

from requests.

kennethreitz avatar kennethreitz commented on July 21, 2024

I'd also like to move all non-essential keyword arguments (timeout, proxies, cookies) into a well-documented and constient **kwargs again. This will solve the 'paramaters getting out of hand' issue.

Closed.

from requests.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.