• 1 Post
  • 29 Comments
Joined 1 year ago
cake
Cake day: July 7th, 2023

help-circle










  • Personally I would recommend to use regex instead for parsing, which would also allow you to more easily test your expressions. You could then get the list as

    import re
    result = re.findall(r'[\w_]+|\S',  yourstring)  # This will preserve ULLONG_MAX as a single word if that's what you want
    

    As for what’s wrong with your expressions:

    First expression: Once you hit (, OneOrMore(Char(printables)) will take over and continue matching every printable char. Instead you should use OR (|) with the alphanumerical first for priority OneOrMore(word | Char(printables))

    Second expression. You’re running into the same issue with your use of +. Once string.punctuation takes over, it will continue matching until it encounters a char that is not a punctuation and then stop the matching. Instead you can write:

    parser = OneOrMore(Word(alphanums) | Word(string.punctuation))
    result = parser.parseString(yourstring)
    

    Do note that underscore is considered a punctutation so ULLONG_MAX will be split, not sure if that’s what you want or not.



  • I don’t have any experience with pipx and personally prefer to just skip the .toml and place the whole pyprojectsetup in setup.py.

    With that method, I would write inside setup()

    packages=find_packages()  # Include every python packages
    package_data={  # Specify additional data files
        'yourpackagename': [
            'config/*'
            etc...
        ]
    }
    

    This would however require you to have a package folder which all your package files/folders are inside, meaning the top level repo folder should not have any files or other folders that you want to distribute. Your MANIFEST.in looks fine.



  • if Valve isn’t selling at a loss to poorer regions then they are simply extracting additional profit from higher-income regions on the assumption that those customers can afford it.

    Valve can’t sell for a loss the same way ebay can’t. Valve simply takes a percentage of the price everytime a game is bought, publishers are in complete control of the price they want to sell. Often, publishers will let Steam automatically set regional pricing based e.g. the American price though.

    The way these publishers operate, they will simply set the price at the highest possible value to extract as much as money ad they can from those willing to spend 60+$. Those unwilling or incapable of spending that amount of money, will just buy the game later on a sale. Price skimming has only become more and more prevalent in PC gaming with steam being the “innovator” of frequent sales.


  • Yes I did read it. I was pointing out that all this will do is screw over citizens of poorer EU countries. India vs USA was simply to make it obvious why the concept of geo blocking makes sense. Germans will on average have stronger buying power than someone in Latvia.

    Steam is a storefront, not a competitor to game publisher. It’s effectively no different than Lidl agreeing to run a regional rebate program for Samsung TVs in Latvia for whatever reason.

    The geo blocking enabled cheaper prices for certain countries, not higher. The only people who would have an issue with it is people from richer countries that for some reason are jealous of lower prices in some countries.



  • Valve won’t break the law for other publisher’s profits. Steam is just a store front, they were geo blocking on behalf of other publishers.

    Valve also doesn’t take a cut from steam key sales not bought directly through their storefront, so the geoblocking keys isn’t something that will impact them. More likely, this will result in citizens of poorer EU countries getting screwed over by having to pay higher prices for games, since they can’t stop EU citizens from taking advantage of buying the game from the poorest EU country.