Comments (2)
A downside of this (as implemented above) is it removes type checking from the values.
from pywlroots.
Looking at this reminds me of David Beazley's talk on metaprogramming: https://www.youtube.com/watch?v=sPiWg5jSoZI
I feel like there is definitely something that we could do here to simplify some of the basic properties around built-in types. It may be possible to type annotate them using some form of generics where the method to build the property would also define the types.
Maybe, it could be even simpler if we did something like:
class OutputMode(Ptr):
def __init__(self, ptr) -> None:
self._ptr = ptr
width: int = Ptr._ptr_property("width")
height: int = Ptr._ptr_property("height")
refresh: int = Ptr._ptr_property("refresh")
preferred: int = Ptr._ptr_property("preferred")
I'm not sure which is able to work better with mypy and if that is sufficient for this.
from pywlroots.
Related Issues (20)
- Output: Support enabling/disabling adaptive sync
- Output.commit(): Return boolean?
- Proposal. Backend.start should return a boolean value HOT 3
- Seat.set_keyboard should accept None HOT 4
- Replace @classmethod with @staticmethod? HOT 2
- Add changelog to project HOT 2
- Cursor.detach_input_device(InputDevice) missing
- tinywl: Handle destroy keyboard HOT 1
- tinywl: Add startup command
- pywlroots 0.16.6: Strange error, XCursorManager has no method "set_cursor_image" HOT 2
- Property Seat.has_grab mirrors Seat.keyboard_has_grab()
- Roadmap for the project HOT 7
- Add OutputHeadV1State.apply() HOT 1
- Pywlroots on raspberry pi (ARM architecture) HOT 23
- pywlr 0.16.x: Add wlr/types/wlr_single_pixel_buffer_v1
- pywlr 0.16.x: Add wlr/types/wlr_keyboard_group
- pywlr 0.16.x: Add wlr/types/wlr_session_lock_v1
- pywlr 0.16.x: Add wlr/types/wlr_input_method_v2 HOT 1
- Proposal: Add helper function ptr_or_null to wlroots.__init__.py
- pywlr 0.16.x: xdg_shell.XdgTopLevel: "base" property is not implemented HOT 1
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from pywlroots.