#dev-contrib

1 messages Β· Page 106 of 1

fallen patrol
#

what do you think, after seeing the above screenshot

patent pivot
#

I meant figured out in the sense of working together

fallen patrol
#

ah

#

yes

#

btw this can be the same role, right?

patent pivot
#

uhhhh

#

yeah

fallen patrol
#

cool

stable mountainBOT
#

Hey @fallen patrol! I noticed you posted a seemingly valid Discord API token in your message and have removed your message. This means that your token has been compromised. Please change your token immediately at: https://discordapp.com/developers/applications/me

Feel free to re-post it with the token removed. If you believe this was a mistake, please let us know!

fallen patrol
#

uh

#

yep am doing well

patent pivot
#

lol

#

how did that happen

fallen patrol
#

oh nothing

#

just didn't click the ide

#

and then typed it and pasted it and entered it

#

sadly

#

since staff can edit this being its a wiki page

#

dependancies

patent pivot
#

we're in a wiki freeze right now, no edits

fallen patrol
#

dependencies

#

smh

#

typos tho

patent pivot
#

there are pros & cons to it. cons are that if the system fails for whatever reason then we've just published someones token wider, the real killer would be discord adding a token invalidate endpoint

patent pivot
fallen patrol
#

also

#

how do you install dependancies with pipenv

#

through a pipfile

patent pivot
#

pipenv sync

fallen patrol
#

that errored

#

oh

brazen charm
#

Mind the --dev

fallen patrol
#

oop

#

did i need those?

brazen charm
#

That'll install things like precommit and flake8 so you can lint locally

fallen patrol
#

bro what config file

#

why are

sleek steppe
#

yes

patent pivot
#

ah nice

sleek steppe
#

No, nothing's in dev-log

fallen patrol
#

i am totally stealing this!```py
[scripts]
start = "python -m bot"
lint = "pre-commit run --all-files"
precommit = "pre-commit install"

#

taught me something i don't know!

sleek steppe
#

What PR? The eval one?

#

Redundancy

#

Wellll no

#

str(command) is the same as command.qualified_name, not command.name

#

!d discord.ext.commands.Command.qualified_name

stable mountainBOT
#

qualified_name```
Retrieves the fully qualified command name.

This is the full parent name with the command name as well. For example, in `?one two three` the qualified name would be `one two three`.
clever wraith
#

man i guess discord mobile doesnt really like ascii art

#

.catify

sleek steppe
#
def qualified_name(self):
    parent = self.full_parent_name
    if parent:
         return parent + ' ' + self.name
    else:
        return self.name
clever wraith
#

@fallen patrol i'm working on a converter rn for the colors

#

yeah

#

well no, i meant converting strings to a discord.Color object

#

yeah, but i;m gonna add some niceties to it

sleek steppe
#

@clever wraith your branches should track upstream/main so you don't have commits from other branches

clever wraith
#

it seems it broke should i close the pr?

sleek steppe
#

Probably, because of merge conflicts

patent pivot
#

color converter will only work for some stuff

sleek steppe
#

Yeah. subclassing ColourConverter should be fine

gritty wind
#

Hey, any idea why the member mock doesn't have an async assert?

#

Or well, it's missing them for some functions

clever wraith
#

aight fixed it is there now

sleek steppe
#

Hmm. It seems like 50% of the time I start bot it exits with code 69 because the bot and the site are starting at the same time

gritty wind
#

Reasoning

Added because of approved Issue
@clever wraith just a heads up, this field is meant for you to describe why you used the solution you did instead of others, not why you made the PR.

#

I've proposed reworking of that template to better explain that

#

The updated one is:

<!-- Outline the reasoning for your implementation, instead of other possible ones. -->
<!-- Note: This is not meant to replace the the Relevant Issues section. Do not say "this was approved", or similar. -->

sleek steppe
#

Is this good for the embed?

clever wraith
#

@clever wraith 699 nice

sleek steppe
#

Still think this should be in fun.py πŸ€”

dusky shoreBOT
fallen patrol
#

Lol

sleek steppe
#

Hmm?

#

@clever wraith

clever wraith
#

oop thatll be fixed momentarily

gritty wind
fallen patrol
clever wraith
#

ok

fallen patrol
#

the biggest thing will actually be writing the converter lol

clever wraith
#

did you make the fork

fallen patrol
#

always has been

#

wtaf

#

i just got a dial tone from youtube

#

@clever wraith so what i actually don't know is how to be able to convert the args and all to the rgb

clever wraith
#

ok

#

yeah i'll work on smth

sleek steppe
clever wraith
#

make a branch

fallen patrol
#

haven't made it yet πŸ˜…

clever wraith
#

WELL MAKE IT

fallen patrol
#

its locallllll

clever wraith
#

@fallen patrol what's that branch :angery:

fallen patrol
#

pre-commit sorry

#

gtg make it happy

#

@vocal prairie @clever wraith what are you guys interested in doing?

clever wraith
#

converter

#

and some PIL stuff

fallen patrol
#

would the converter be in the same file?

#

doesn't seem like it would need to go in utils but yknow

#

it would be nicest

fallen patrol
clever wraith
#

ok

#

can I have piss access

fallen patrol
#

not sure of the structure of the project but since someone else is writing it it would result in least blame conflicts to resolve if its in a util file

fallen patrol
clever wraith
#

*push access

fallen patrol
#

no .

#

oh

clever wraith
#

bad spelling :blobpain:

#

@fallen patrol so did you give access

fallen patrol
tawdry vapor
#

I didn't write that mixin

fallen patrol
#

sir-lancebit#677

#

sir-lancebot#677

dusky shoreBOT
clever wraith
#

ok

fallen patrol
#

you commented and expressed interest

sleek steppe
#

Is there an issue on lancebot's repo about the .ext list command?

vocal prairie
#

On the website, could this be changed to 100 helpers?

#

Um…

sleek steppe
#

We have 100 helpers? Wow

thorny obsidian
#

I think there's still a wiki freeze in place, but that does remind me to changelog!

vocal prairie
#

wiki freeze?

#

That's on the home page btw.

thorny obsidian
#

While things are being migrated over we're not editing things on the website. I forget which components are wiki and which aren't though

vocal prairie
#

The main page isn't wiki, right?.

#

The image is from he index.html file.

thorny obsidian
#

oh that's probably a PR change then

vocal prairie
#

Can I pr it now, or should I open an issue?

clever wraith
#

@sleek steppe regarding your review, what would you suggest? the module doesnt include any error handling

sleek steppe
#

When you send an invalid character...does it raise an error?

clever wraith
#

just an exception, does except Exception work?

thorny obsidian
vocal prairie
#

πŸ‘

sleek steppe
clever wraith
#

alright

fallen patrol
clever wraith
#

looks good so far!!

sleek steppe
#

Umm

#

What do those three groups of letters/numbers mean πŸ€”

fallen patrol
#

that's the format of rgb

#

actually the hex is technically wrong for what everything else expects it as

clever wraith
#

lmao

fallen patrol
#

done

#

the basis of the command is done

#

next is a whole converter that will be about as large as the rest of it

#

and creating a script to parse the two scripts online

vocal prairie
#

CYMK is a formula I dmed to you

fallen patrol
#

yes

#

check dms again

#

i also gave you write access to my branch

vocal prairie
#

Can I be assigned to site#366?

dusky shoreBOT
thorny obsidian
vocal prairie
#

Thanks!

sleek steppe
fallen patrol
#

wdym

sleek steppe
#

.colour rgb(123, 221, 111)

sleek steppe
wicked nova
#

I'm looking for ways to contribute to the bot, but I have 0 ideas.

#

What should I do?

fallen patrol
wicked nova
#

RGB is numbers

fallen patrol
#

haven't added converters yet πŸ˜‚

#

that was actually hex in that invoke

vocal prairie
wicked nova
#

πŸ‘

vocal prairie
sleek steppe
#

Those are big embeds

sleek steppe
fallen patrol
#

i don't think i'm defining the args correctly

#

async def color(self, ctx: commands.Context, *user_color: ColorConverter)

#

should absorb the rest of it

#

unless

#

i could actually convert the type after the header

sleek steppe
fallen patrol
#

is it not the same

sleek steppe
# fallen patrol is it not the same
@bot.command()
def foo(ctx, *args):
    await ctx.send(args)
# <prefix>foo 1 2 3
# Sends: ('1', '2', '3')

@bot.command()
def foo(ctx, *, args):
    await ctx.send(args)

# <prefix>foo 1 2 3
# Sends: '1 2 3'
sleek steppe
# fallen patrol

Yeah it doesn't work with 1.5.1, only 1.7.1 (which I said in the message)

#

I was talking about your own ColourConverter

#

I just meant you should copy get some inspiration from that

fallen patrol
sleek steppe
#

I didn't say that

fallen patrol
#

anyways it now has a converter and i didn't write any of it

#

it defintely didn't come from 1.7

sleek steppe
#

now you need one for CMYK, HSL and HSV

fallen patrol
#

eh

#

users can't input in hsl or hsv i think

sleek steppe
#

really?

#
.colour #6563C7
.colour cmyk(49, 50, 0, 22)
.colour hsl(241, 47, 58)
.colour rgb 101 99 199
vocal prairie
#

Some code joe had

fallen patrol
#

sir-lancebot#677

dusky shoreBOT
fallen patrol
#

heck

#

skips converters for now

#

time to work on the naming portion ablobsweats

vocal prairie
#

Didn't joe have a list of websites that you could pull from?

#

Might not have been joe.

#

But someone did.

#

Yeah

#

You linked two in the issue

#

Just pull from those.

fallen patrol
#

well

#

actually

#

need to merge the list and then figure out to parse it

vocal prairie
#

Stick it in a txt

#

Or a yaml

#

Or a md

placid ermine
#

bump

thorny obsidian
#

Alright. I'm up for a bit cause health stuff. Who wants a review for lancebot stuff?

short snow
#

I can give it a try, not completely sure on how to implement the repetitive reminders tho

clever wraith
dusky shoreBOT
short snow
short snow
#

we can merge sir-lancebot#697

short snow
#

2 approvals are there

thorny obsidian
#

amazing how little info the github actions gives me -_-

#

@patent pivoteeeeeeeeeeeeeeeeeeee, I don't know why the github actions hates me ;_; I pushed a green button and I don't know what I did wrong (re: merging the .catify fix)

short snow
#

try re running them, github actions faced some internal issues

fallen patrol
#

^

#

seems like everything is facing internal issues rn

#

i wonder what is down

short snow
#

tried my best lol

#

the duck could be a pond

short snow
#

or different, dunno which would be better

fervent sage
#

imo if it can be customised it should be able to be customised independently of everything else

short snow
#

sorry, i didn't get you

short snow
fervent sage
#

if something, like the duck, can be customised in whatever way, like changing its colours, then you should be able to individually control each aspect of that, rather than it being dependent on something else i.e. the manduck

short snow
#

hmm

fervent sage
#

also wdym by 'keys'

short snow
#

say if this is the request:

{
    "name": "Foo",
    "description": "An optional description",
    "price": 45.2,
    "tax": 3.5
}
#

then name, price are the keys

#

that's what i call them

fervent sage
#

ah, technically they're all just fields in the request body

short snow
#

like we discussed here.

fervent sage
#

and we already do that, that's what the models are in the models.py file

#

the issue i was facing when i originally looked at it was that we wanted the values to default to random values, rather than static defaults

short snow
#

yeah, that's what i was seeing rn, we would need to add some logic the color gens, so it can take the colors given my the user and generate the rest depending on that

fervent sage
#

now youre starting to see why i gave up on doing it initially kek

short snow
#

lol :doge_kek:

fervent sage
#

i dont think it should be that hard, it just takes more sitting down and thinking than i can reasonably achieve in a session lol

short snow
#

yeah, once we understand the way, it would be easy, just need to figure out a good efficient way to do it

fervent sage
#

i thinkℒ️ we could do it like this: (i'll miss out a bunch of fields because laziness, but you should get the general idea)

def fill_defaults(duck: dict): # this dict is dict(the_duck_request_body)
  data = {
    "accessories": {
      "hat": choice(hats),
      "outfit": choice(outfits)
    }
  }

  data.update(duck)
  return data
#

we'd probably have a helper function to generate the random defaults, and then update that with the request body

short snow
#

just get the random values and over write them with the ones the user gave?

fervent sage
#

yep

short snow
#

but wouldn't it be as smooth as the ones generated, as the ones got generaed randomly are based of a color scheme and are of similar type

fervent sage
#

the issue there is i'm not sure update will work how I want it to, for example let's say we have

{
  "something": {
    "a": 1,
    "b": 2
  }
}
```and we call .update() on that with
```py
{
  "something": {
    "b": 3
  }
}
```I'm fairly sure `something.a` just disappears from it
short snow
#

yeah we can leave that aside, lets think on the way to do it, implementation can be figured out later

fervent sage
#

i'm gonna go have breakfast and think about this kek

short snow
fervent sage
#

I dont think there's really a perfect solution for this, if it's totally customized by the user they get what they asked for, if it's completely randomly generated then they get it with a colour scheme, if it's half and half then how are we supposed to know what they even want. I guess we could generate it precisely the same as the full random ones, that way at least the random parts follow the same colour scheme

short snow
#

yeah

#

so just overwriting them should work?

fervent sage
short snow
#

yeah, i will look into the implementation

#

i will have to wait for the pr to get merged before i can open a pull request lemon_angrysad

short snow
#

@fervent sage ok, so this should work, #bot-commands message

fervent sage
#

epic!

#

now we just need to get that PR merged blob_pain

short snow
#

yeah

#

i think it is over complicated a bit, lemme see if i can simplify the merge function

short snow
#

and should we just support random pets

#

not customizable thro input json

short snow
# short snow

options:

a - just generate two random duck and man duck and join them with a rope

b - generate two of them using the same colourscheme and join them with a rope

fervent sage
#

hmmm, probably b

short snow
#

1 - your - Random() model thing
2 - mine - allow to pass input for man ducks
3 - mine - allow passing only some inputs and rest would be taken thro the default (random generator)
4 - mine - pet ducks

green oriole
#

GET /helper_count on the API when

short snow
#

i think you can open describe Random model issue better than me lemon_sweat

fervent sage
#

yup

short snow
#

how can i create a message object mock and get its link (writing tests for bot#1446 )

dusky shoreBOT
short snow
#

and @green oriole what all do want in tests?

like when i put a message link, then do you want to check for the webhook message content too or just the number of embeds sent?

what i came up with is:

  • put a message with 3 links, test if there are one message with three embeds sent
  • edit a message to have 4 links, test if there are four embeds
  • edit a message to have 0 links, test if the message gets deleted
  • delete a message, check if the message gets deleted
  • on adding action/rejected emoji, does the message get deleted or not
green oriole
#

Sounds about right

#

You probably only need 2 links every time but that should be fine

short snow
patent pivot
#

@cold island bear in mind user mentions in embeds are pretty broken across all platforms, one of the reasons for the feature is to get a user ID since jump links on mobile don't work and I don't think the user embeds either

cold island
#

maybe in addition?

patent pivot
#

yeah in addition would be alright

short snow
#

the author is already mentioned

#

i will mention the channel id

#

lemme see about golddd

cold island
#

going by the ss you sent

short snow
#

hmm

cold island
#

ok

short snow
#

i will update the screenshots on the pr

#

better @cold island ?

cold island
#

the channel should still be there

short snow
#

is that realy gold pithink , looks like some yellow LOL

#

channel id?

cold island
#

yeah

short snow
#

i thought it is not needed since we can just right click on it

cold island
#

no

short snow
#

k

cold island
#

sorry, eating

#

the channel name

#

since mentions don't always render

short snow
#

ok, i think channel mentions always render

cold island
#

discord is good at fucking it up

short snow
#

lol, just id or even the name

cold island
#

name + mention imo

short snow
#

that would look repetitve, we can get the name thro the id anyways, if we put that

#

like we do for format user

cold island
#

Difference is

#

if the mention doesn't work but you see the name you can just scroll to the channel

#

whereas there's not much to do with the channel ID

#

The user mention is useful to pull up the profile, but mods can get the relevant info from the user ID

short snow
#

ok cool, got it

#

perfect

cold island
short snow
#

pushed, just need to figure out tests now

short snow
#

@patent pivot which library do we use to generate those nice graphs, the npm lib

patent pivot
#

uhhhhh

short snow
#

i remember you said it in the ot channels, but i can't remember it

patent pivot
short snow
#

yes, thanks!

sleek steppe
#

@clever wraith could you push πŸ˜„

clever wraith
#

no

#
AttributeError: 'NoneType' object has no attribute 'version_sort'```
#

i keep getting this

#

just started getting it now

#

@sleek steppe

sleek steppe
#

In your command?

clever wraith
#

no

#
  File "C:\Users\VIncas\AppData\Roaming\Python\Python38\site-packages\pipenv\core.py", line 2512, in do_run
    ensure_project(
  File "C:\Users\VIncas\AppData\Roaming\Python\Python38\site-packages\pipenv\core.py", line 576, in ensure_project
    ensure_virtualenv(
  File "C:\Users\VIncas\AppData\Roaming\Python\Python38\site-packages\pipenv\core.py", line 498, in ensure_virtualenv
    python = ensure_python(three=three, python=python)
  File "C:\Users\VIncas\AppData\Roaming\Python\Python38\site-packages\pipenv\core.py", line 388, in ensure_python
    path_to_python = find_a_system_python(python)
  File "C:\Users\VIncas\AppData\Roaming\Python\Python38\site-packages\pipenv\core.py", line 350, in find_a_system_python
    return next(iter(finder.find_all_python_versions()), None)
  File "C:\Users\VIncas\AppData\Roaming\Python\Python38\site-packages\pipenv\vendor\pythonfinder\pythonfinder.py", line 328, in find_all_python_versions
    path_list = sorted(versions, key=version_sort, reverse=True)
AttributeError: 'NoneType' object has no attribute 'version_sort'```
#

i might be running it wrong

#

omg

#

im stupid

#

im running form the wrong dir

#

i think u were wrong with that Image.Image @sleek steppe

#

im getting errors now from my command

sleek steppe
#

Attribute errors?

#

I have no idea what error you'd be getting; I haven't seen your current code

clever wraith
#

nvm

#

i made another mistake

#

i can push now

thorny obsidian
#

The command is super cool by the way! I was playing with it last night locally

clever wraith
#

mine?

#

@sleek steppe pushed

clever wraith
#

cuz it can create some cool imgs

#

ill show mine and my friend's

#

i think thats pretty cool

thorny obsidian
#

Yeah! It's super cool

clever wraith
#

thanks

fervent sage
#

i prefer lower number of squares myself, otherwise it looks kinda random

#

but yeah its an awesome feature

clever wraith
#

thanks

#

@thorny obsidian are u gonna review it?

thorny obsidian
#

I'm hoping to today once I answer some work emails~

clever wraith
#

ok thanks

sleek steppe
vocal prairie
#

No, the emoji didn't show.

sleek steppe
clever wraith
#

u approved it?

sleek steppe
#

different PR

clever wraith
#

or is that someone else's

#

oh..

vocal prairie
patent pivot
#

yeah I think it's just a bug that we can't work around

sleek steppe
#

I mean it's been happening

patent pivot
#

The emoji is certainly there in the payload, it just seems that Discord strips it out

fervent sage
#

weird

short snow
#

wait don't merge splitify, i got a change

sleek steppe
#

Can't merge anyways, needs a core dev approval

clever wraith
#

no one is gonna

clever wraith
#

but since ur a contributor urs counts as 1 of the staff right?

#

so if kutie approves it today then it should be merged i think

sleek steppe
#

Kutie isn't a core-dev

fervent sage
#

kutie isnt a core dev i dont think

clever wraith
#

oh rip

fervent sage
clever wraith
#

@short snow what do you mean use it instead of I and we?

sleek steppe
thorny obsidian
#

nope, not a core dev

fervent sage
#

"I use Image.(something) to do {something}" would be "It uses Image.(something)...", for example

thorny obsidian
#

I do not know our stack or d.py well enough at all to even be remotely considered for core dev

clever wraith
#

so if i say: I make a for loop, you want me to instead say it make a for loop?

#

i dont get it

fervent sage
clever wraith
#

@short snow

short snow
#

we should have a place where all the stack is there, if it is not public then make it public

#

it helps

fervent sage
#

since you're not personally carrying out what you're saying the code does, it should be using the wording "it does" "it changes" rather than "i do" "i change"

short snow
thorny obsidian
#

haha, I've actually been through that a few times >_>

sleek steppe
#

lol

thorny obsidian
#

or rather, I've read through it and plan on incorporating some stuff in a smaller bot I'm making for a different server

sleek steppe
placid ermine
#

latex unload

green oriole
#

.ext unload latex

dusky shoreBOT
#

:ok_hand: Extension successfully unloaded: bot.exts.evergreen.latex.

green oriole
#

Hey @clever wraith, are you linting your PR locally before committing?

clever wraith
#

Yeah

green oriole
#

You have quite a bunch of fix commits right here

placid ermine
#

couldn't you have waited 5 seconds lemon_pensive

#

my .latex $69 \cdot 6 - 9 + 6 + 9 = 420$ didn't get rendered πŸ˜”

green oriole
#

lol

#

.ext load latex

dusky shoreBOT
#

:ok_hand: Extension successfully loaded: bot.exts.evergreen.latex.

green oriole
#

.latex $69 \cdot 6 - 9 + 6 + 9 = 420$

dusky shoreBOT
green oriole
#

.ext unload latex

dusky shoreBOT
#

:ok_hand: Extension successfully unloaded: bot.exts.evergreen.latex.

sleek steppe
#

perfect

green oriole
#

@placid ermine there you go

placid ermine
#

it is done

#

thank

#

bump on this btw

green oriole
#

Who else was involved in the latex discussion?

placid ermine
#

30% of it was me talking to myself

#

but uh
scaleios, mark, kutiekatj, and joe have participated in the convos

green oriole
#

Oh boy

sleek steppe
green oriole
#

I've asked in the core dev chat about latex rendering as it is scrolling slower than this channel, will get back to you once I have an answer

#

"Due" sounds better imo

short snow
#

@clever wraith have you tested your pr before committing a push?

#

You have a lot of changes which are kind of breaking

green oriole
#

"Done at" sounds awkward

clever wraith
short snow
#

Test your pr and go through each requested change and see if the they work and are resolved

tough imp
#

"Done at" sounds awkward but given the dot it may be the best we have, not sure

short snow
#

Yeah, due sounds better

#

And more appropriate

#

To the context

tough imp
#

I wanted to see how awkward it could get if I change my phone's locale to another lang but it said it'd have to restart and I'm not ready for that kind of commitment

green oriole
#

Haha

vale ibex
#

!stream @vale ibex 3d

stable mountainBOT
#

@vale ibex

βœ… @vale ibex can now stream.

vale ibex
#

It also worth mentioning that it's possible to be a date too

green oriole
#

It isn't even a dot on Android

#

It is a vertical bar

short snow
#

Yeah, we should do this for such commands

tough imp
#

iOS has a pipe too

green oriole
#

!rstream 126811506632294400 REVOKED

stable mountainBOT
#

βœ… Revoked the permission to stream from @vale ibex.

vale ibex
#

So the wording needs to work when its both Today at XX:XX and XX/XX/XXXX

tough imp
#

Chris using this opportunity to grant themselves extra perms πŸ˜”

short snow
#

Lol

vale ibex
#

Due sounds good to me

green oriole
#

Y'all better not let the coffee be too powerful

sleek steppe
fervent sage
vale ibex
short snow
#

any core Dev if you have time off, could you review the quackstack PR, it is holding off the other features.

fervent sage
#

^^^

short snow
#

Me and Alec giving too many reminders lol

#

No patience

vale ibex
#

I'll have a look at setting an environment to test it tonight if I get a chance

#

I'm not familiar enough with the code to tell from just the PR changes

patent pivot
short snow
#

Hmm, one staff and one core Dev right?

patent pivot
#

nope

short snow
#

Or just two staffs

patent pivot
#

1 staff member

short snow
#

Thanks Chris lemon_hyperpleased

#

We got it then

#

Oh no

#

Vco had a commit

patent pivot
short snow
#

On it lemon_grimace

patent pivot
#

yeah

short snow
#

SMH πŸ€¦β€β™‚οΈ Alec

fervent sage
#

.randomcase sorry

dusky shoreBOT
#

SOrRY

short snow
#

Lol, not at all

sleek steppe
#

Merged before the checks passed 😬

vale ibex
#

!remind 2h Look at this swanky new time feature

stable mountainBOT
#
Sure.

Your reminder will arrive in 2 hours!

short snow
vale ibex
#

That's enforced by Discord

short snow
#

Isn’t it a dot?

sleek steppe
#

Mobile I think

vale ibex
#

the separator is a pipe on mobile and a dot on desktop

short snow
#

Oh

sleek steppe
fervent sage
tough imp
#

1981 nice

#

we're gonna reach the tayloer swift album soon

sleek steppe
#

@vale ibex the weird image being outside of the embed bug for the .spookyavatar only happens when I mention lancebot πŸ€” but when I make lancebot the one who's invoking the command then it doesn't do that Thonk maybe there isn't a point of trying to fix it

short snow
#

Hmm, but why does that happen

#

Is the question here

cold moon
#

One thing I notified in QuackStack: This currently installs also dev-dependencies in Dockerfile, but there we need only production dependencies.

#

Yes, easiest way is using Docker

green oriole
#

Yes

#

Dev dependencies should never be installed in a docker image lemon_pensive

balmy sparrow
#

poetry install --no-dev, someone can just commit to main?

green oriole
#

Yep yep

tough imp
#

If you're using docker you don't need to do the site setup

#

compose will spin up a site container for you

#

just do the bot

green oriole
balmy sparrow
#

that's the poetry command to not install dev deps

green oriole
#

lmao, I am so blind

cold moon
#

poetry installs dev deps default

green oriole
#

Yeah, yeah, I didn't see that it wasn't pipenv for some reason

#

Wait, do we really have quackstack as a critical project haha

#

Guess we do, huh

cold moon
#

Top priority 🀣

green oriole
#

No main commit for me

tough imp
#

The bot project has a docker-compose.yml which defines which services need to run; it contains the site service as well, so just by following the bot instructions if you use docker and compose, it will run site for you

cold moon
#

Yeah, this new branch protection policy don't let main-pushes anymore.

green oriole
#

Well, only to critical projects

cold island
#

It can launch a site container for you. If you want to work only on the bot side of things then that's all you need

green oriole
#

I guess permissions on this projects are a bit funky since I don't have access to most of the settings

tough imp
#

btw I think this still isn't addressed

green oriole
#

Yes, it should

#

Are we not mentioning it in the guide?

tough imp
#

the guide just recommends running fakeredis

green oriole
#

Alright, that should probably be changed after the wiki freeze

vale ibex
#

We're in a wiki freeze atm, while we're working on the dewikification

#

Ah yea, what Akarys said

green oriole
#

!remind 2w Suggest to use the Redis container on the Python docs

stable mountainBOT
#
I'll allow it.

Your reminder will arrive in 14 days!

green oriole
tough imp
#

linting from within

balmy sparrow
green oriole
#

One way to find out lemon_smug

balmy sparrow
#

devops has to approve as well

green oriole
#

@patent pivoteeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee

#

Do you have a second?

tough imp
#

there has to be some endpoint

patent pivot
#

hi

#

i have a second

tough imp
#

ah

#

yea

patent pivot
#

approving

green oriole
#

Thanko

patent pivot
#

merged

tough imp
#

joe the merger

patent pivot
#

legend amongst men

balmy sparrow
#

do we need to be making the virtualenv as well pithink

sleek steppe
#

Quackstack uses poetry? pogchamp

patent pivot
#

heck yea

magic arch
#

nicee

#

(on another note, i think joe is staring into my soul)

patent pivot
#

πŸ₯Έ

balmy sparrow
fallen patrol
#

duck yea

magic arch
stable mountainBOT
#

@vale ibex

It has arrived!

Here's your reminder: Look at this swanky new time feature.
[Jump back to when you created the reminder](#dev-contrib message)

fervent sage
sleek steppe
#

ah yes

fallen patrol
clever wraith
#

i made the change with pronouns @sleek steppe its way worse now but oh well

remote abyss
#

Not sure if this is the right place to ask, but I noticed an issue with the response from the python bot when typing !d if.
We were trying to show a user how to use the if/else syntax for python, but it returned irrelevant django syntax instead. I also noticed that if isn't on the tags list, so I wonder where it's even coming from... πŸ€”

thorny obsidian
#

!if

stable mountainBOT
#

if __name__ == '__main__'

This is a statement that is only true if the module (your source code) it appears in is being run directly, as opposed to being imported into another module. When you run your module, the __name__ special variable is automatically set to the string '__main__'. Conversely, when you import that same module into a different one, and run that, __name__ is instead set to the filename of your module minus the .py extension.

Example

# foo.py

print('spam')

if __name__ == '__main__':
    print('eggs')

If you run the above module foo.py directly, both 'spam'and 'eggs' will be printed. Now consider this next example:

# bar.py

import foo

If you run this module named bar.py, it will execute the code in foo.py. First it will print 'spam', and then the if statement will fail, because __name__ will now be the string 'foo'.

Why would I do this?

β€’ Your module is a library, but also has a special case where it can be run directly
β€’ Your module is a library and you want to safeguard it against people running it directly (like what pip does)
β€’ Your module is the main program, but has unit tests and the testing framework works by importing your module, and you want to avoid having your main code run during the test

sleek steppe
#

Oh you mean !d if

#

!d if

stable mountainBOT
#
if

if

The {% if %} tag evaluates a variable, and if that variable is β€œtrue” (i.e. exists, is not empty, and is not a false boolean value) the contents of the block are output:

{% if athlete_list %}
    Number of athletes: {{ athlete_list|length }}
{% elif athlete_in_locker_room_list %}
    Athletes should be out of the locker room soon!
{% else %}
    No athletes.
{% endif %}
```...
remote abyss
#

Yeah sorry I think it was !d if

sleek steppe
#

That was before Numelor's PR

remote abyss
#

How recent was that

whole forge
#

sad

remote abyss
#

Rip

whole forge
remote abyss
#

!d if makes sense, but why on earth would it be returning django πŸ˜…

sleek steppe
#

Uhhh I guess there were some issues with the command

#

bot#1014

dusky shoreBOT
sleek steppe
#

It was merged 9 days ago

#

Also wasn't !docs get a thing

whole forge
remote abyss
#

So it's not just scanning python docs?

sleek steppe
#

!d

stable mountainBOT
whole forge
#

i belive the approprite way to go about this is to exclude every reserved name, statement and builtin function in python from being pulled from any other source than the python docs

brazen charm
#

!d label.if works

remote abyss
#

Oh I see

stable mountainBOT
#

8.1. The if statement

The if statement is used for conditional execution:


if_stmt ::=  "if" assignment_expression ":" suite
             ("elif" assignment_expression ":" suite)*
             ["else" ":" suite]
``` It selects exactly one of the suites by evaluating the expressions one by one until one is found to be true (see section [Boolean operations](https://docs.python.org/3/reference/expressions.html#booleans) for the definition of true and false); then that suite is executed (and no other part of the [`if`](https://docs.python.org/3/reference/compound_stmts.html#if) statement is executed or evaluated). If all expressions are false, the suite of the [`else`](https://docs.python.org/3/reference/compound_stmts.html#else) clause, if present, is executed.
sleek steppe
#

!d if

#

oh yeah it is django

remote abyss
#

Alright I'll use label.if for now, thx.

#

Errr

#

Even that snippet looks ridiculously confusing

whole forge
#

yeah its the grammar for if statements

stable mountainBOT
#

8.1. The if statement

The if statement is used for conditional execution:


if_stmt ::=  "if" assignment_expression ":" suite
             ("elif" assignment_expression ":" suite)*
             ["else" ":" suite]
``` It selects exactly one of the suites by evaluating the expressions one by one until one is found to be true (see section [Boolean operations](https://docs.python.org/3/reference/expressions.html#booleans) for the definition of true and false); then that suite is executed (and no other part of the [`if`](https://docs.python.org/3/reference/compound_stmts.html#if) statement is executed or evaluated). If all expressions are false, the suite of the [`else`](https://docs.python.org/3/reference/compound_stmts.html#else) clause, if present, is executed.
remote abyss
#

There's no way that would be helpful to someone asking for help πŸ˜‚

thorny obsidian
#

Do you have something in mind for explaining if/else? We could turn it into a dedicated tag

whole forge
#

the issue if people using !d if would still persist, i think there should be a way to handle docs for things like if too

#

people are going to use !d if because that seems to make sense

remote abyss
#

I explained it like this in a pinch

if condition:
    # do stuff
elif condition2: 
    # elif is optional
else:
    # default condition.β€Š
#

But it could definitely be explained better

#

Or shown better

whole forge
remote abyss
#

Oh right

#

Fixed

#

Still, that's just a barebones example

sleek steppe
#

Hmm It would be cool for tags to parse the markdown to fine the bolded title and made it the embed title

brazen charm
#

!d tut-if is the closest you can get to anything like that, but is still a more technical tutorial which I don't think is as suited to complete beginners. The tutorial pages also don't expose the symbols nicely so you pretty much have to look for the ids yourself

stable mountainBOT
#

4.1. if Statements

Perhaps the most well-known statement type is the if statement. For example...

thorny obsidian
#

I think in this case an !if-else tag or something would be nice

whole forge
#

yes but that does not fix the issue of people mistakenly using "!d if"

brazen charm
#

imo the statement is something that should mostly be explained personally if someone needs to understand it

thorny obsidian
#

I think the tag could be nice to provide an example boilerplate you can then use to explain personally

thorny obsidian
remote abyss
#

Yeah it would be good to have something uniform and agreed upon, I'm sure everyone's examples would be slightly different

#

I'm surprised the docs command doesn't require specifying a library before the keyword

whole forge
#

in many cases it does

remote abyss
#

Like !d <python/py> <keyword>

fervent sage
#

aiohttp

whole forge
#

!d aiohttp.ClientSession

stable mountainBOT
#
class aiohttp.ClientSession(*, connector=None, loop=None, cookies=None, headers=None, skip_auto_headers=None, auth=None, json_serialize=json.dumps, version=aiohttp.HttpVersion11, ...)```
The class for creating client sessions and making requests.
whole forge
#

there we go

green oriole
#

I was about to say that it is a stdlib haha

stable mountainBOT
#

help([object])```
Invoke the built-in help system. (This function is intended for interactive use.) If no argument is given, the interactive help system starts on the interpreter console. If the argument is a string, then the string is looked up as the name of a module, function, class, method, keyword, or documentation topic, and a help page is printed on the console. If the argument is any other kind of object, a help page on the object is generated.

Note that if a slash(/) appears in the parameter list of a function, when invoking [`help()`](https://docs.python.org/3/library/functions.html#help "help"), it means that the parameters prior to the slash are positional-only. For more info, see [the FAQ entry on positional-only parameters](https://docs.python.org/3/faq/programming.html#faq-positional-only-arguments).

This function is added to the built-in namespace by the [`site`](https://docs.python.org/3/library/site.html#module-site "site: Module responsible for site-specific configuration.") module.
sleek steppe
remote abyss
#

Well then !d <django> if

#

You get my point

whole forge
#

hu

remote abyss
#

Wtf lol

whole forge
#

wot

#

so to recap, !d if works, but !d django.if doesn't?

#

thats very eugh behaviour

brazen charm
#

It depends on the symbol, if isn't a method or anything like that for django so it's just if directly in the docs, but if it had a conflict that wouldn't be a label or something else we move, then it'd be prefixed with django. The role of the django template tags could be added to the list of groups that's currently moved out of the way in case of a conflict (which includes the label group), but that'd also need additional handling as I believe currently it'll just depend on which one came first if they're both moveable

#

There won't be multiple symbols pointing to the same docs (except for rare cases where they're provided multiple times by the inventories)

whole forge
#

i would definitely make sure that no library can have anything thats in python as a !d label

#

!d else

stable mountainBOT
#

8.1. The if statement

The if statement is used for conditional execution:


if_stmt ::=  "if" assignment_expression ":" suite
             ("elif" assignment_expression ":" suite)*
             ["else" ":" suite]
``` It selects exactly one of the suites by evaluating the expressions one by one until one is found to be true (see section [Boolean operations](https://docs.python.org/3/reference/expressions.html#booleans) for the definition of true and false); then that suite is executed (and no other part of the [`if`](https://docs.python.org/3/reference/compound_stmts.html#if) statement is executed or evaluated). If all expressions are false, the suite of the [`else`](https://docs.python.org/3/reference/compound_stmts.html#else) clause, if present, is executed.
whole forge
#

yo

#

wack

#

!d for

stable mountainBOT
#
for

for

Loops over each item in an array, making the item available in a context variable. For example, to display a list of athletes provided in athlete_list:

<ul>
{% for athlete in athlete_list %}
    <li>{{ athlete.name }}</li>
{% endfor %}
</ul>
```  You can loop over a list in reverse by using `{% for obj in list reversed %}`...
remote abyss
#

Yikes lol

whole forge
#

another tempalte one that shouldnt be here

#

!d def

stable mountainBOT
brazen charm
#

Well, it'd be impossible to take care of all cases but as I said the django template things have their own group so handling can be added for that. Best to open an issue for it if you'd like to see it handled

fallen patrol
#

Relevant poetry and vsc news:

patent pivot
#

nice

short snow
#

Weee lezzz go, quackstack PR got merged οΏΌοΏΌοΏΌπŸŽ‰

sleek steppe
#

I see οΏΌοΏΌοΏΌπŸŽ‰

#
- [ ] Read all the comments in this tempelate.
- [ ] Ensure there is an issue open, or link relevant discord discussions.
- [ ] Read the [contributing guidelines](https://pythondiscord.com/pages/contributing/contributing-guidelines/).

@gritty wind Should these sentences end with ??

gritty wind
#

Sure

fallen patrol
#

Wat

#

@short snow obj to you too

#

And @gritty wind as well

gritty wind
#

What's happening?

fallen patrol
#

That's definitely scale

#

Scale is now toxic

#

mentioned wrong person lol

gritty wind
#

Do you... need glasses? haha

#

I'm confused

fallen patrol
#

It says obj

#

So whatever they sent my phone doesn't support right?

gritty wind
#

I see that on windows as well

#

just invisible on iOS

vocal prairie
#

I can't see it on Windows. Just says obj

sleek steppe
fallen patrol
#

O

#

Lol

short snow
#

Am on iOS right now, must be the problem

stable mountainBOT
#

You are not allowed to use that command here. Please use the #bot-commands channel instead.

short snow
fallen patrol
#

Dafuq?

vocal prairie
#

Wot?

short snow
#

Lol, I need some sleep, night

vocal prairie
#

Night!

short snow
#

Summer starts, schedule fucks up

deft patrol
#

True

short snow
#

Ok, welp am stuck here, and dunno why

#

i am kinda rewriting the manduck generator to support from options

#

but, the pants and dress color are always coming the same

#

dunno why that is happening

#

i can push the code to my fork, if you want to see the rest of it

#

sir @fervent sage i need your help

fervent sage
#

h

#

i fear manduck generation

fallen patrol
#

Did reddit just

#

Die

short snow
#

nvm, thats the wrong screenshot

#

it was fixed long ago

#

correct ss

#

ok the colors are correct

#

but the generator generates them too close

vocal wolf
fervent sage
#

!remind 6h look over quackstack#35

stable mountainBOT
#
Can do!

Your reminder will arrive in 6 hours!

dusky shoreBOT
plush falcon
#

Hi may I know how do I pull the python bot in my own server?

I had forked it and also tried the webhooks function, but it doesn't work.

short snow
#

well if anyone how to create message object mocks and get there link in unit tests let me know.

Need them to write tests for one of the pr on bots ( 1446)

tough imp
#

have you looked at the existing tests? I'm sure they create mock messages

#

is the link an attribute you want to set?

#

that line sets two attributes: content and attachments

#

you can set any other attribute the same way

short snow
#

i went thro the tests already, didn't see anywhere how to get the message links, rest i can do ig

tough imp
#

what will you use the link for?

#

is the link normally an attribute on the message object?

short snow
#

i think so, lemme see

tough imp
#

I've written the existing tests so you can ask me about them if you have any questions

short snow
#

the existing tests are ok and i can understand them perfectly, this is what i want to do with the tests: #dev-contrib message

tough imp
#

I think I'd have to read your implementation to help you write tests for it

#

the way unit tests are written is that you isolate a piece of code that you want to test (e.g. a function, or the regex), and you mock the inputs (and/or state if not pure) to simulate each scenario that you want to test, and then make assertions about the outputs (or state, if side effects)

#

so for example to test the regex, I think you only really need to provide a mock message link

#

and observe whether the regex identifies the link as it should

#

you don't need an actual message object to do that

#

for another example, to test extract_message_links, you would pass a MockMessage(content="my content here") which includes some message links in the content

#

and then observe whether the function returns the desired amount of embeds

#

if you wanted to test the embed content as well, you would have to mock e.g. make_message_link_embed as well

#

that would allow you to test the function in isolation, without depending on what make_message_link_embed returns (because you would mock its return value)

#

however a valid approach would be also to just let make_message_link_embed run

#

I'm not really able to tell you which one would be better in this case, I'd have to spend more time reading the implementation

#

ultimately, something needs to be mocked at some point, because you cannot get a real Context object anyway

short snow
#

so i would need to make message link embed and extract message link functions separately?

#

and not in the flow of the on_message ?

tough imp
#

well, consider what on_message is responsible for

#

its responsibilities are to check whether the message is an incident, and if so, pass it to add_signals, extract_message_links, and the return value of that, conditionally, to send_webhooks

#

it's not responsible for sending the webhooks directly

#

of course it is possible to write a test that will ascertain whether the webhook is sent correctly on a simulated event propagating through the listener

#

but that is more difficult to orchestrate

#

and I think that's closer to integration testing

#

if you're just testing on_message as a unit, you only need to test that it does what it's responsible for

#

i.e. correctly delegating to other functions

#

the current testing suite is written using this approach

#

though I'm not able to tell you whether it's the best approach, and how useful it ultimately ends up being lol

#

it doesnt assert whether the signals are added

#

it only asserts whether the add_signals function is called as it should

#

add_signals is responsible for adding the signals, not on_message, so that behaviour is tested elsewhere

#

the function docstrings explain the behaviour that is being asserted, so in this case, it is specifically that:

  • Messages qualifying as incidents are passed to add_signals.
  • Messages not qualifying as incidents are ignored.
short snow
#

I think, it is much clear to me now, I will try writing tests for them

#

if i get stuck, i will let you know πŸ˜„

#

thanks!

tough imp
#

yea no worries

short snow
#

So to sum I need to add these tests:

  1. Mock a message containing two links, see if two links are returned on extract_message_links.

  2. Mock two make_message_link_embed embeds and pass it to the webhook and test whether 2 of them are sent into the channel.

  3. Delete the incident, test if the delete function is called or not.

  4. On editing the incident, is the extract message links function called

vocal prairie
#

Can I pass off the implementation of an !about command? It was discussed here: #dev-contrib message. I've been rather busy lately, so I haven't had the time to do it, and I'd rather not leave it sitting there.

green oriole
#

!about

#

Hmm

#

I think we have something like that

#

!info

#

Maybe we yeeted it

#

.about

#

Yeah, why not

short snow
#

!bot info

stable mountainBOT
#

A utility bot designed just for the Python server! Try !help for more info.

Total Users

181230

green oriole
#

It isn’t high priority, it can wait

#

Aha

sleek steppe
green oriole
#

Β―_(ツ)_/Β―

clever wraith
#

people in general are calling me dumb for saying python is slow lmao

#

im so glad this channel exists

sleek steppe
#

But it isn't

clever wraith
#

it really is

#

go for example is wayyy faster

#

and i know from experience

thorny obsidian
#

I think it's a bit unfair to compare a statically typed with dynamically typed language.

clever wraith
#

i had literally 2 programs coded to do the same

#

well still

sleek steppe
#

I haven't had any issues with speed with python

clever wraith
#

im not saying it causes issues

thorny obsidian
#

@njit and all my problems are solved 😎

clever wraith
#

im just saying its slow

#

if u were to spam requests, python would be way slower

brazen charm
#

Not exactly the channel to go to because you didn't like general

clever wraith
#

i just appreciated it and then it developed into this

rancid zenith
#

I'm seeing this everywhere so I'll just throw in my blanket statement. Python is slow. However, there's plenty reasons for it not mattering, such as it being dynamically typed or the speed difference not being noticeable.

Does that satisfy your statement?

green oriole
#

Speed isn’t everything

clever wraith
#

yes

#

but i never said python is worse than other languages

#

i was particularly talking about the speed

green oriole
#

Programming is a facet of engineering, it is about tradeoffs

rancid zenith
green oriole
#

It is off-topic for this channel anyway

clever wraith
#

it depends on what ur making

balmy sparrow
vocal prairie
#

For the search feature on the website, would you rather it use a search API or a manual search? I'm personally leaning towards manual, just to try it out.

#

^ That's a pydis dev question, not about python's speed.

clever wraith
#

but thats all

clever wraith
#

no, too many idiots there

#

i cant handle

rancid zenith
#

Well I don't want to clog this chat so... have a good one

clever wraith
#

yeah i said everything i had to

green oriole
#

It isn’t a reason to not stick to channel topics

vocal prairie
dusky shoreBOT
clever wraith
#

if someone has approved my pr and i do a new commit, does the approval stay?

green oriole
#

Yes

clever wraith
#

cuz im pretty sure it does and i dont think it should be that way

thorny obsidian
#

I'd be down for trying to roll our own, although I'm not sure how core devs feel.

clever wraith
#

what if ppl approved it and i sneaked in something malicious

green oriole
#

Our own search? πŸ‘€ do we really need to?

sleek steppe
green oriole
vocal prairie
clever wraith
#

yeah ik but thats not what im talking about

clever wraith
#

good

green oriole
#

it is rare that a pr stays with 2 approvals without being merged anyway

clever wraith
#

i had 4 approvals

#

now 3 i think cuz i requested a re review

green oriole
#

Well, core dev approvals

clever wraith
#

ok

#

i asked like 3 maybe staff members to look at it but no one has yet

short snow
vocal prairie
#

I'm talking about something like Algolia.

short snow
#

i don't think we want to depend on external service for that

green oriole
#

could we, like, just use a search library?

#

We just have to search a few local files

vocal prairie
#

That wouldn't be hard.

#

Just searching markdown and html.

short snow
#

we have difflib

vocal prairie
#

That's what I meant by manual.

green oriole
#

Hmm sounds like that wouldn’t be great performance wise

vocal prairie
#

What I mean by live is where results pop up as you're typing.

#

Which isn't necessary.

#

But I'm sure there would be ways to make it more efficient if that's something that's needed.

sleek steppe
#

Would it be cool if a tag started with **bold** text, then we'd use that for the embed title?

short snow
#

are you searching thro the full content or just the headers?

vocal prairie
#

No idea.

#

It's whatever the staff wish to search.

short snow
#

one minute, i think my dewification, there is a short description field added

#

ok yes they are added, maybe we can just search thro them,

#

searching thro the entire content wouldn’t be great performance wise

vocal prairie
#

So we can just search headers?

#

Headers and the description?

short snow
#

in my opinion, worth asking lemon as the issue opener

brazen charm
#

or just json but I don't really think that's worth it and loses the md preview

sleek steppe
#

I mean it wouldn't be too hard to do

line = file.readline()
if match := re.fullmatch(r"\*\*(.+)\*\*", line):
    embed.title = match.group(1)
brazen charm
#

Yes, but it is something you need to know about and may not want

fervent sage
#

it's a markdown file why not just use markdown?

# Title

body
#

that makes far more intuitive sense i think than using a file format with built in header syntax and using a different way of defining titles

green oriole
#

You can also have table representing the metadata

#

It is a common solution

tough imp
#

the event definitions use markdown with YAML frontmatter, the bot already has a dependency to parse them

brazen charm
tough imp
#

and GitHub does render the frontmatter correctly

#

(look at the raw repr)

stable mountainBOT
#

@fervent sage

It has arrived!

Here's your reminder: look over quackstack#35.
[Jump back to when you created the reminder](#dev-contrib message)

green oriole
#

chop chop

#

I hope it is done πŸ‘€

dusky shoreBOT
fervent sage
#

@short snow am getting 500s while making manduck requests

brazen charm
#

bot#1298 and bot#1299 can be closed (or their scope changed) with the board being archived

sleek steppe
#

πŸ€” webhooks are weird

patent pivot
#

lol

#

in attempting to add shipit to devlog i have accidentally CENSORED shipit NO MORE SHIPIT

clever wraith
#

😒

#

Bad joe

#

Please don't ban me lol

sleek steppe
#

I'll add :shipit: to every approval until it works

clever wraith
vale ibex
#

It's when the user's name isn't file safe

sleek steppe
#

Ah that makes sense

vale ibex
#

just writing a quick func to escape invalid filename chars now

vale ibex
#

Works now

sleek steppe
#

Ah nice

vale ibex
#

pushed

fallen patrol
vale ibex
#

Hah yea that's an option

#

Was fun to write the escaper though πŸ˜›

fallen patrol
#

i just wrote something similar lol

#

shaldn't talk about it until its merged tho

short snow
sleek steppe
#

Could someone review bot#1531?

short snow
sleek steppe
#

Yeah, good catch

short snow
#

@gritty wind care to explain this a bit more?

Certain edge cases may occur if a module changes names while unloaded, and in such cases, it may be best to ignore it in code, and send a warning in a dev channel.

#

Like, how can a cog change its name on unload, and even if it does what warning do you send to Dev channel

#

Is it like, you don’t load all cogs found in cache and those which are present in cache but not in the cogs are sent as warning?

gritty wind
#

Say you have a module titled "chritsmas"

#

Someone notices that typo after it has already been merged, and decides to rename it

#

now the module will be called "christmas"

#

if chritsmas had been unloaded for some reason

#

You presumably still want it to be unloaded when it becomes christmas

#

But that seems difficult to figure out dynamically

#

so just let people figure it out with something like:
"Couldn't find unloaded module: chritsmas"

#

Ah, I think I see your confision

#

it doesn't change name on unload, it changes name on restart after being unloaded

short snow
#

Ok, so basically what I said afterwards, send a warning for all cogs which are present in cache but couldn’t be found

gritty wind
#

Yeah

short snow
#

I can go ahead and do it then

#

Lemme comment

gritty wind
#

it's not approved

#

I want discussion from people who rejected it previously

short snow
#

Whoops, didn’t see the label 🏷

sleek steppe
#

woops accidentally made a comment instead of an approval

fallen patrol
#

hey! why use poetry for stuff that will be published on pypi?

gritty wind
#

Like over pipenv?

#

It has native support for it

#

More reminiscent of something like yarn or npm than pipenv

fallen patrol
gritty wind
#

You can package your module and push it to pypi with one command

#

well, two

#

but they are simple commands, not manual steps

fallen patrol
#

ohhhhh

#

snazzzzzzzzzzy

gritty wind
#

It's on the homepage of poetry

#

a big selling point

fallen patrol
#

!pypi poetry

stable mountainBOT
short snow
#

@fervent sage changes pushed, you can test it thro this:

curl -X 'GET' \
  'http://127.0.0.1:8000/manduck' \
  -H 'accept: application/json' \
  -H 'Content-Type: application/json' \
  -d '{
  "variation": 1,
  "colors": {
    "body": {
      "r": 252,
      "g": 79,
      "b": 242
    },
    "wing": {
      "r": 252,
      "g": 98,
      "b": 243
    },
    "eye": {
      "r": 50,
      "g": 1,
      "b": 47
    },
    "beak": {
      "r": 252,
      "g": 77,
      "b": 137
    },
    "eye_wing": {
      "r": 254,
      "g": 205,
      "b": 252
    }
  },
  "dress_colors": {
    "shirt": {
      "r": 173,
      "g": 250,
      "b": 41
    },
    "pants": {
      "r": 175,
      "g": 250,
      "b": 46
    }
  },
  "accessories": {
    "hat": "santa",
    "outfit": "ninja",
    "equipment": "radio"
  }
}'
#

sorry for taking space

fallen patrol
#

so is the reason to switch to poetry for @dusky shore why?

gritty wind
#

Speed, and apparently works better on Mac

fallen patrol
#

cause that's a bot and doesn't seem like it'll be going on pypi any time soon

gritty wind
#

It is a tooooon faster than pipenv

#

and seems to be more maintained

vocal prairie
#

Poetry is way faster

fallen patrol
#

yeah lol i normally launch a shell for pipenv since its so slow

#

unrelated

#

vsc isn't running my bash_profile script on the integrated terminal, how to fix that?

#

its

#

.…

#

add -l to terminal.integrated.shellArgs.linux

#

thanks stack overflow

balmy sparrow
fallen patrol
#

poetry should run tests before pushing to pypi if it does not already lol

balmy sparrow
#

I appreciate how simple they've made it already and run tests myself

clever wraith
#

Hey! currently I can't talk (sadly) I would love to but I cant, does someone need some help coding, then dm me.

#

):

#

Hmm hello so high staff help me please aww );;;

short snow
#

!voice

stable mountainBOT
#

Voice verification

Can’t talk in voice chat? Check out #voice-verification to get access. The criteria for verifying are specified there.

short snow
#

@clever wraith

short snow
#

sir-lancebot#615 can have good first issue label

dusky shoreBOT
short snow
gritty wind
#

I saw it, but haven't had a chance to action it

#

Don't know if I agree with it

#

Oh, that's a different comment

short snow
#

#dev-log message here, am thinking of making a command which can edit the cache (remove, list).

list - listing all cache enteries along with the status of they are loaded or not.

remove - removing a entry

short snow
tough imp
#

I don't think such a command would be necessary, the cache probably shouldn't be user-facing, it's just state for the extensions module

#

You can already list extensions and see their status

#

The cache should be a reflection of that

gritty wind
#

Theoretically, you can, but the command is broken πŸ‘€

#

list, everything else works

tough imp
#

try to think about which parts of it would be worth testing

#

starting with the regex sounds good