Support for listening on random port and opening browser without delays
Personne n'a encore pris cette issue.
Évaluation
- Difficulté
- 5/5
- Temps estimé
- Plus d'une semaine
- Accessibilité débutants
- 25/100
Piste de recherche
Start by reviewing the server startup path in livereload.server and the web.Application and Server references shown in the issue. Use the monkeypatch example to understand the requested random-port and browser-opening behavior. Done means the server supports these flows without delays and exposes enough startup hooks for subclassing or customization.
Rédigé par le modèle d'indexation à partir du texte de l'issue.
Description
Hello,
I wanted to support opening a browser on a random local port, and got it working with a bit of monkeypatching:
server = make_server(…)
import tornado.web
import tornado.httpserver
import tornado.netutil
import webbrowser
class Application(tornado.web.Application):
def listen(self, *args, **kw):
sockets = tornado.netutil.bind_sockets(0, 'localhost')
server = tornado.httpserver.HTTPServer(self)
server.add_sockets(sockets)
pairs = []
for s in sockets:
pairs.append(s.getsockname()[:2])
pairs.sort()
host, port = pairs[0]
if ":" in host:
host = f"[{host}]"
url = f"http://{host}:{port}"
log.info("Listening on %s", url)
async def open_browser():
webbrowser.open_new_tab(url)
tornado.ioloop.IOLoop.current().add_callback(open_browser)
return server
# Monkey patch to be able to start servers in a smoother way that the
# defaults of livereload
import livereload.server
livereload.server.web.Application = Application
server.serve()
Integrating this in livereload seems to require some refactoring of how the server is started, and I didn't engage on it. I hope that my monkeypatched code can be a useful reference.
Ideally, I would have liked to be able to subclass Server or the Application used by server, and have enough hooks to intervene in the listening bit.
- Langage dominant
- Python
- Étoiles
- 1.1k
- Forks
- 149
- Métriques de merge des PR
- Aucune PR mergée en 30 j
Préparer son environnement
Ce projet ne fournit ni conteneur de développement, ni Dockerfile, ni guide de contribution : l'installation est à votre charge. Commencez par son README, et consultez notre guide de la première contribution pour les étapes générales.
Par où commencer
- Lisez l'issue en entier, puis le guide de contribution du projet.
- Signalez en commentaire que vous la prenez — cela évite que deux personnes fassent le même travail.
- Forkez le dépôt et travaillez sur une branche.
- Ouvrez une pull request qui référence le numéro de l'issue.
Autres issues de lepture/python-livereload
-
Difficulté 1/5 Moins d'une heure Accessibilité débutants 70/100
lepture/python-livereload#159 · 3 réactions ·
-
Difficulté 4/5 3-5 jours Accessibilité débutants 35/100
lepture/python-livereload#288 ·
-
Difficulté 3/5 1-2 jours Accessibilité débutants 38/100
lepture/python-livereload#283 · 1 commentaire ·
-
Difficulté 4/5 3-5 jours Accessibilité débutants 25/100
lepture/python-livereload#282 ·
-
Difficulté 4/5 3-5 jours Accessibilité débutants 25/100
lepture/python-livereload#279 ·
Toutes les issues de lepture/python-livereload
Issues similaires
-
Difficulté 2/5 1-3 heures Accessibilité débutants 65/100
noontide-co/mainbranch#1211 · 1 commentaire ·
Les mainteneurs répondent en général sous 1 jour
-
[1.x Bug] run-operation --sql reports success but rolls back writes on transaction-capable adaptersOuvertetriage
Difficulté 2/5 1-3 heures Accessibilité débutants 64/100
dbt-labs/dbt#16784 · 1 commentaire ·
Les mainteneurs répondent en général sous 1 jour
-
bug needs-triage
Difficulté 2/5 1-3 heures Accessibilité débutants 70/100
Les mainteneurs répondent en général sous 1 jour
-
bug settings ui
Difficulté 2/5 1-3 heures Accessibilité débutants 72/100
DewaldOosthuizen/py-tray-command-launcher#162 ·
Les mainteneurs répondent en général sous 1 jour
-
run_all sleeps after the final job despite documenting delays between jobsPeut-être pris @Gambit-Checkmate l’a pris aujourd’hui. Ouverte
Difficulté 2/5 1-3 heures Accessibilité débutants 74/100