Where communities thrive


  • Join over 1.5M+ people
  • Join over 100K+ communities
  • Free without limits
  • Create your own community
People
Activity
  • Feb 02 22:13
    kckrinke commented #251
  • Feb 02 21:00
    alecthomas commented #251
  • Feb 02 20:42
    alecthomas commented #251
  • Feb 02 19:53
    kckrinke commented #251
  • Feb 02 14:35
    bluefish6 commented #475
  • Feb 02 13:00
    rstcruzo commented #251
  • Feb 02 11:34
    alecthomas commented #251
  • Feb 02 11:33
    alecthomas commented #251
  • Feb 02 11:13
    alecthomas commented #251
  • Feb 02 11:13
    alecthomas commented #251
  • Feb 02 11:10
    alecthomas commented #251
  • Feb 02 11:05
    rstcruzo commented #251
  • Feb 02 10:40
    alecthomas commented #251
  • Feb 02 10:12
    rstcruzo commented #251
  • Feb 02 09:54
    rstcruzo commented #251
  • Feb 02 09:53
    rstcruzo commented #251
  • Feb 02 09:05
    rstcruzo commented #251
  • Feb 02 01:13
    rstcruzo commented #251
  • Feb 02 01:12
    rstcruzo commented #251
  • Feb 02 01:11
    rstcruzo commented #251
Jack Twilley
@mathuin
I temporarily gave up and am using Property to hold the entire bit. I will break that down further when I walk the tree.
tira
@t1ra
Heya, is this active?
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?