Where communities thrive


  • Join over 1.5M+ people
  • Join over 100K+ communities
  • Free without limits
  • Create your own community
People
Activity
  • Nov 13 18:15
    Suor opened #412
  • Nov 12 10:53
    asyncee commented #127
  • Nov 12 10:53
    asyncee closed #127
  • Nov 12 10:53
    asyncee commented #127
  • Nov 12 10:52
    jstasiak commented #127
  • Nov 12 10:40
    asyncee opened #127
  • Nov 07 18:43
    coveralls commented #411
  • Nov 07 18:41
    monopolis opened #411
  • Nov 06 09:26
    alecthomas labeled #298
  • Nov 06 09:26
    alecthomas labeled #298
  • Nov 06 09:02
    dolmen opened #298
  • Nov 05 20:31
    alecthomas commented #307
  • Nov 05 20:31

    alecthomas on master

    Fix "-" flag value parsing Cou… (compare)

  • Nov 05 20:31
    alecthomas closed #307
  • Nov 05 13:50
    hupfdule commented #250
  • Nov 05 13:49
    hupfdule opened #307
  • Nov 05 09:19

    alecthomas on v3-unstable

    Fix "-" flag value parsing (compare)

  • Nov 05 09:19
    alecthomas closed #250
  • Nov 05 09:19
    alecthomas commented #250
  • Nov 05 08:52
    hupfdule commented #250
Alec Thomas
@alecthomas
Somewhat
Fruitpunch5amurai
@Fruitpunch5amu1_twitter
I need some help regarding EntityX, basically im trying to use LUA to define entities within my game. These entities will have components, which components it has will be defined in the lua. When i read the components, im trying to assign the entity with the type of component. This project is in C++. I cant pass a string to assign a component to an entity in EntityX. Anyone know how to go about this without creating a massive switch statement?
Alec Thomas
@alecthomas
Have a look at entityx_python, it might give you some ideas
Fruitpunch5amurai
@Fruitpunch5amu1_twitter
I see you can use c++ components in entityx_python. Is it possible to define my entities in python and export them to c++?
Alec Thomas
@alecthomas
Yes
Or did you mean ‘define components’? If so, no you can’t
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?