by

Where communities thrive


  • Join over 1.5M+ people
  • Join over 100K+ communities
  • Free without limits
  • Create your own community
People
Activity
  • 04:55
    alecthomas commented #378
  • 04:49
    alecthomas commented #378
  • Jul 07 13:49
    HelgeCPH edited #378
  • Jul 07 13:39
    HelgeCPH opened #378
  • Jul 07 10:52
    domgraziano commented #149
  • Jul 07 10:37
    domgraziano commented #149
  • Jul 05 20:22
    jstasiak commented #149
  • Jul 02 22:17

    alecthomas on master

    Add .editorconfig to ini lexer … (compare)

  • Jul 02 22:17
    alecthomas closed #376
  • Jul 02 22:16
    alecthomas commented #377
  • Jul 02 22:15

    alecthomas on master

    Fix golangci-lint download htt… (compare)

  • Jul 02 22:15
    alecthomas closed #377
  • Jul 02 22:03
    silverwind commented #376
  • Jul 02 22:01
    silverwind opened #377
  • Jul 02 08:21
    itchyny commented #73
  • Jul 02 06:32
    silverwind commented #376
  • Jul 02 06:31
    silverwind commented #376
  • Jul 02 06:29
    silverwind synchronize #376
  • Jun 30 13:55
    anshukch commented #423
  • Jun 30 13:50
    kflak commented #369
Fruitpunch5amurai
@Fruitpunch5amu1_twitter
No, components will be define in c++. I want to use python to tell c++ what components that entity is made of and assign the entities
Alec Thomas
@alecthomas
That sounds like what the example in the README illustrates?
Fruitpunch5amurai
@Fruitpunch5amu1_twitter
Im a little confused on the "The Exposing C++ Components to Python" section. This shows how to export a component to Python correct?
Fruitpunch5amurai
@Fruitpunch5amu1_twitter
So you import the components to the python script and assign the values. So now i have an entity within python... but how do i use that in C++?
tmartiro
@tmartiro

Could you please help to group same section
Input file

iface eth0
 address 1.1.1.1/32

iface eth0
 address 2.2.2.2/32

I want to get such output

{
    "iface" : "eth0",
    "addresses" : [
        {"address" : "1.1.1.1/32" },
        {"address" : "2.2.2.2/32" }
    ]
}
Is it possible to do it in parser, or I have to mutate the structures after the parser finishes its job in order to achieve such kind of output ?
Alec Thomas
@alecthomas
You’ll have to do that in a post-process
Or a method on the parent node to transform it into that form on the fly
tmartiro
@tmartiro
I am interested in the method on parent node. Do you have any example related to it ?
vito-c
@vito-c
how do I create a custom style for chroma? or port over an existing vim style :)
vito-c
@vito-c
derp i got it :D
Naveen Nathan
@nnathan

I'm having a curious problem with pytest-voluptuous==1.1.0 (and voluptuous==0.11.5). Below timing.1.source has value "create," and the actual value is "create," but get assertion error and this doesn't really compute?

I should point out that timing.0 is fine. timing.1.duration_in_ms is also fine. Just timing.1.source that's failing.

v1_base_url = 'http://127.0.0.1:64387/v1'

    def test_customers_create(v1_base_url):
        url = v1_base_url + "/customers"

        data = {
            "first_name": "john",
            "last_name": "doe",
            "email": "johndoe@example.com",
            "phone_number": "04555555555"
        }

        r = requests.post(url, json=data)

        assert r.status_code == 200
>       assert r.json() == S(
            {
                "success": True,
                "timing": [
                    {"duration_in_ms": int, "source": "backend_api_call"},
                    {"duration_in_ms": int, "source": "create"}
                ],
                "messages": ["Customer created", "OK"],
                "response": {"unnecessary": "crap"}
        )
E       AssertionError: assert failed to validation error(s):
E         - timing.1.source: not a valid value (actual: 'create')
Naveen Nathan
@nnathan
oh nevermind, it's all good, i met this homeless bum on the street - he was an expert in pytest-voluptuous, told me that the slice in timing when specified in the S() is actually calling the underlying Schema voluptuous function and that slices have a very special meaning - that is, that the first match is tried and if it fails it fails and doesn't backtrac, but there's some kind of LiteralArray thing - anyway, I gave him a few dollars to spend a night at a hotel and have a shower - real good guy.
Alec Thomas
@alecthomas
@nnathan that's good to hear!
i think the validator you're looking for is ExactSequence
fwiw :)
Naveen Nathan
@nnathan
Ok I have a better understanding now of how a basic list works - it's just a list of unordered valid inputs - so ['a', 'b'] in a schema will accept ['b']*100. So it will not validate against the 'a', but will validate against the 'b' for each item in the list. Now going based on my above example - I still don't know why it failed the assertion (I get I want an ExactSequence and not a list of objects that are valid inputs), but i'm pretty sure it was receiving a valid input - and that the input - specifically the timing section, should've matched the valid input list for the timings in the schema above:
{
  "success": true,
  "response": { "unnecessary": "crap" },
  "timing": [
    {
      "duration_in_ms": 629,
      "source": "backend_api_call"
    },
    {
      "duration_in_ms": 655,
      "source": "create"
    }
  ],
  "messages": [
    "Customer created",
    "OK"
  ],
  "time": "2019-08-12T03:53:41.070455Z"
}
Alec Thomas
@alecthomas
no, it will also validate b
it failed because {...} matched, but then failed on a sub-key
voluptuous will not backtrack, so once it enters a sub-schema (ie. {...}) it will not exit
Naveen Nathan
@nnathan
The brain is ticking again. I get it -- had to read the (lack of) backtrack explanation in README, but makes sense now.
Ryan Gonzalez
@refi64
Question,
Is there a way to have posix-style parsing, where option parsing stops after the first argument?
E.g. if I run myapp -a b -c, b -c are non-options
I'm using kingpin for a Go tool since it's pretty much the sanest Go option parsing library by a long shot, but I really need to support this...
Alec Thomas
@alecthomas
No that is not supported. Kingpin supports -- to separate remaining args.
Mmm actually there is an interspersed option that I forgot about
Ryan Gonzalez
@refi64
Oof that sucks...would there be e.g. a PR accepted to add this somehow? GLib's GOptionContext calls it "struct posix mode", so maybe a .StrictPosix() on a Command instance?
Alec Thomas
@alecthomas
Did you try interspersed?
Ryan Gonzalez
@refi64
Ooo that might actually be what I need, I'll try it tomorrow
Ryan Gonzalez
@refi64
Sorry for all the noise, but out of curiosity was there a reason alecthomas/kingpin#245 was never merged?
Nitish Malhotra
@nitishm
@alecthomas How can I Capture Time formatted values using participle. I am trying to capture [2016-04-15T20:17:00.310Z]. Not sure how to proceed ?!
Alec Thomas
@alecthomas
@nitishm if you're using the regex lexer (for example) you'll need to match and emit a token. eg. (?P<Time>\[\d{4}-\d\d-\d\dT\d\d:\d\d:\d\d\.\d{3}Z\])
then you'll need to implement the participle.Capture interface on a custom type
eg. something like this
type Time time.Time

func (t *Time) Capture(tokens []string) error {
  s, err := time.Parse("...", tokens[0])
  ...
  *t = s
  return nil
}
Alec Thomas
@alecthomas
you could also omit the second step and just capture the string
Nitish Malhotra
@nitishm
Yup I ended up creating a lexer.Regexp() for this. It's a fascinating tool. Am still trying to wrap my head around it 😂. But every iteration it seems to make more sense.
I am trying to write a custom log parser for envoy access logs.
Alec Thomas
@alecthomas
/all I'm moving this to the Gopher's Slack, as Gitter is effectively dead/unmaintained.
@/all I'm moving this to the Gopher's Slack, as Gitter is effectively dead/unmaintained.
Tariq Ibrahim
@tariq1890
Gitter effectively dead?
Wha?
LittleMoi
@LittleMoi
Hey guys.Is there any book recommended for me to understand ECS?
FruitPunch5amurai
@FruitPunch5amurai
Hey , i need some assistance with an issue im having. For EntityX, i have a system thats recieving ComponentRemoved Event. However, when i destroy an entity, it doesnt seem like the system is recieving the ComponentRemovedEvent.
The component is attached to the entity
thestics
@thestics
Hello there. I have a question about voluptuous. Is there any way to restrict a name of a field
something like:
schema = Schema({
    lambda name: '.' in name: str
})
Aurélien Gasser
@AurelienGasser
Hi Alec, thanks a lot for your Go serializer benchmark!
I'm trying to compress/decompress data - that data will only be used by my Go program.
I'm having a hard time understanding the "Totals" section of https://github.com/alecthomas/go_serialization_benchmarks. What do the columns mean? In particular, I'm interested in: speed of compression / speed of decompression / compressed payload size. Which columns should I look at ? How can I compare the profobuf row with the gob row?
Thank you!
Michael Pfaff
@mpfaff
I'm interested in something similar to Aurélien, but I have a slight focus on deserialization speed
thomas
@yaythomas
re chroma: hi Alec, any chance of a version bump on chroma so can hugo can pick up the latest?