Giter VIP home page Giter VIP logo

Comments (3)

ioistired avatar ioistired commented on June 20, 2024 1

_bot.cogs['MyCog'] is a bit quicker to type. combine that with setting jishaku retain on by default using environment variables and it's not so bad. This also gets into the sticky issue of maintaining that state whenever a cog is reloaded. Potentially that could be solved by passing a custom globals dictionary type to exec that falls back to looking up bot.cogs.

from jishaku.

Gorialis avatar Gorialis commented on June 20, 2024

I don't really like having this be done by the repl context preparation because it would mean people who use JISHAKU_NO_UNDERSCORE would end up having all their cogs in scope randomly, and since I've seen a decent number of people call their cogs things like Fun and Games I can forsee scoping issues. It would actually be pretty funny to see people be bitten by this, since it would mean people would stop asking me why I prefix the underscore by default.

A potential compromise might be to just add _cogs as an automatic variable, but even that might cause scoping issues (I know many people, including myself, who put their cogs into a cogs.whatever module).

I don't really like the idea of a global fallback dictionary because it means people unfamiliar with the behavior won't know why they have magic ephemeral variables flying around. It's easy to tell that _bot.cogs['Utils'].something() won't work for you if you don't have such a cog, but _Utils.something() is more confusing at a glance.

from jishaku.

Gorialis avatar Gorialis commented on June 20, 2024

I think I'm ultimately deciding to not do this one. You can trivially use _bot.get_cog to get this behavior with not really that much brevity loss, and without the expense of having potentially conflicting or confusing automatic names in scope.

from jishaku.

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.