Skip to content

Commit

Permalink
Update dependencies to support Python 3.10 (#328)
Browse files Browse the repository at this point in the history
  • Loading branch information
MarcCote committed Nov 21, 2023
1 parent 7d87e50 commit 3bb5df6
Show file tree
Hide file tree
Showing 9 changed files with 320 additions and 251 deletions.
20 changes: 16 additions & 4 deletions .azure/pipelines/tests.yml
Original file line number Diff line number Diff line change
Expand Up @@ -11,16 +11,28 @@ stages:
- template: linux-template.yml
parameters:
vmImages: [ 'ubuntu-20.04' ]
pythonVersions: [ '3.7' ]
pythonVersions: [ '3.8' ]
- template: linux-template.yml
parameters:
vmImages: [ 'ubuntu-latest' ]
pythonVersions: [ '3.9' ]
- template: macos-template.yml
- template: linux-template.yml
parameters:
vmImages: [ 'ubuntu-latest' ]
pythonVersions: [ '3.10' ]
- template: linux-template.yml
parameters:
vmImages: [ 'ubuntu-latest' ]
pythonVersions: [ '3.11' ]
- template: linux-template.yml
parameters:
vmImages: [ 'macOS-11' ]
pythonVersions: [ '3.7' ]
vmImages: [ 'ubuntu-latest' ]
pythonVersions: [ '3.12' ]
- template: macos-template.yml
parameters:
vmImages: [ 'macOS-latest' ]
pythonVersions: [ '3.9' ]
- template: macos-template.yml
parameters:
vmImages: [ 'macOS-latest' ]
pythonVersions: [ '3.10' ]
2 changes: 1 addition & 1 deletion requirements-full.txt
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ tqdm>=4.17.1
cffi>=1.0.0
networkx>=2
more_itertools
tatsu>=4.3.0,<5
tatsu>=5.8.3
hashids>=1.2.0
jericho>=2.2.0
mementos>=1.3.1
Expand Down
2 changes: 1 addition & 1 deletion requirements.txt
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ tqdm>=4.17.1
cffi>=1.0.0
networkx>=2
more_itertools
tatsu>=4.3.0,<5
tatsu>=5.8.3
hashids>=1.2.0
jericho>=3.0.3
mementos>=1.3.1
Expand Down
7 changes: 3 additions & 4 deletions textworld/logic/logic.ebnf
Original file line number Diff line number Diff line change
@@ -1,11 +1,12 @@
@@grammar :: GameLogic
@@eol_comments :: ?"#.*$"
@@eol_comments :: /#.*?$/
start = document ;
str = ?'"[^"]*"' ;
strBlock = ?'"""(.|\n)*?"""' ;
strBlock = ?'"""(?:.|\n)*?"""' ;
name = ?"\w+" ;
Expand Down Expand Up @@ -90,8 +91,6 @@ type::TypeNode = "type" name:name [":" supertypes:",".{name}+] "{" parts:{typePa
document::DocumentNode = types:{type}* $ ;
start = document ;
onlyVariable = @:variable $ ;
onlySignature = @:signature $ ;
Expand Down
119 changes: 73 additions & 46 deletions textworld/logic/model.py
Original file line number Diff line number Diff line change
@@ -1,5 +1,4 @@
#!/usr/bin/env python
# -*- coding: utf-8 -*-

# CAVEAT UTILITOR
#
Expand All @@ -10,12 +9,16 @@
# Any changes you make to it will be overwritten the next time
# the file is generated.

from __future__ import print_function, division, absolute_import, unicode_literals
from __future__ import annotations

from typing import Any
from dataclasses import dataclass

from tatsu.objectmodel import Node
from tatsu.semantics import ModelBuilderSemantics


@dataclass(eq=False)
class ModelBase(Node):
pass

Expand All @@ -26,119 +29,143 @@ def __init__(self, context=None, types=None):
t for t in globals().values()
if type(t) is type and issubclass(t, ModelBase)
] + (types or [])
super(GameLogicModelBuilderSemantics, self).__init__(context=context, types=types)
super().__init__(context=context, types=types)


@dataclass(eq=False)
class VariableNode(ModelBase):
name = None
type = None
name: Any = None
type: Any = None


@dataclass(eq=False)
class SignatureNode(ModelBase):
name = None
types = None
name: Any = None
types: Any = None


@dataclass(eq=False)
class PropositionNode(ModelBase):
arguments = None
name = None
arguments: Any = None
name: Any = None


@dataclass(eq=False)
class ActionPreconditionNode(ModelBase):
condition = None
preserve = None
condition: Any = None
preserve: Any = None


@dataclass(eq=False)
class ActionNode(ModelBase):
name = None
postconditions = None
preconditions = None
name: Any = None
postconditions: Any = None
preconditions: Any = None


@dataclass(eq=False)
class PlaceholderNode(ModelBase):
name = None
type = None
name: Any = None
type: Any = None


@dataclass(eq=False)
class PredicateNode(ModelBase):
name = None
parameters = None
name: Any = None
parameters: Any = None


@dataclass(eq=False)
class RulePreconditionNode(ModelBase):
condition = None
preserve = None
condition: Any = None
preserve: Any = None


@dataclass(eq=False)
class RuleNode(ModelBase):
name = None
postconditions = None
preconditions = None
name: Any = None
postconditions: Any = None
preconditions: Any = None


@dataclass(eq=False)
class AliasNode(ModelBase):
lhs = None
rhs = None
lhs: Any = None
rhs: Any = None


@dataclass(eq=False)
class ReverseRuleNode(ModelBase):
lhs = None
rhs = None
lhs: Any = None
rhs: Any = None


@dataclass(eq=False)
class PredicatesNode(ModelBase):
predicates = None
predicates: Any = None


@dataclass(eq=False)
class RulesNode(ModelBase):
rules = None
rules: Any = None


@dataclass(eq=False)
class ReverseRulesNode(ModelBase):
reverse_rules = None
reverse_rules: Any = None


@dataclass(eq=False)
class ConstraintsNode(ModelBase):
constraints = None
constraints: Any = None


@dataclass(eq=False)
class Inform7TypeNode(ModelBase):
definition = None
kind = None
definition: Any = None
kind: Any = None


@dataclass(eq=False)
class Inform7PredicateNode(ModelBase):
predicate = None
source = None
predicate: Any = None
source: Any = None


@dataclass(eq=False)
class Inform7PredicatesNode(ModelBase):
predicates = None
predicates: Any = None


@dataclass(eq=False)
class Inform7CommandNode(ModelBase):
command = None
event = None
rule = None
command: Any = None
event: Any = None
rule: Any = None


@dataclass(eq=False)
class Inform7CommandsNode(ModelBase):
commands = None
commands: Any = None


@dataclass(eq=False)
class Inform7CodeNode(ModelBase):
code = None
code: Any = None


@dataclass(eq=False)
class Inform7Node(ModelBase):
parts = None
parts: Any = None


@dataclass(eq=False)
class TypeNode(ModelBase):
name = None
parts = None
supertypes = None
name: Any = None
parts: Any = None
supertypes: Any = None


@dataclass(eq=False)
class DocumentNode(ModelBase):
types = None
types: Any = None

0 comments on commit 3bb5df6

Please sign in to comment.