chore: remove typo

Why:
Fixes Typo
What's being changed (if available, include any code snippets, screenshots, or gifs):
Section: Sharing secrets and variables within an organization
In: Share workflows with your organization
In: Using workflows
Check off the following:

[x] I have reviewed my changes in staging (look for the "Automatically generated comment" and click the links in the "Preview" column to view your latest changes).
[x] For content changes, I have completed the self-review checklist.

@kamilkulik Thanks for opening a PR! Great catch! I'll get this merged down once the checks have all passed ✅

JETPACK
￼
Platform
Android Studio
Google Play
Jetpack
Overview
Get Started
Libraries
Compose
Community
Kotlin
Docs
Games
Overview
Documentation
Why Compose
Tutorial
Quick start
Foundation
Thinking in Compose
Managing state
Lifecycle
Modifiers
Side-effects
Phases
Architectural layering
Performance
Semantics
CompositionLocal
Development environment
Tooling
Overview
Android Studio support for Compose
Relay designer and developer tooling
Kotlin for Compose
Developer ergonomics
Bill of Materials
Design
Layout
Design Systems
Lists and grids
Text
Images & graphics
Animation
Touch and input
Adopting Compose
Adopting Compose in existing apps
Adopt Compose for teams
Compose and other libraries
Architecture
Navigation
Resources
Accessibility
Testing
Testing cheat sheet
List of modifiers
Jetpack Compose
Jetpack
Compose
هل كان المحتوى مفيدًا؟
Android Studio support for Compose
bookmark_border
على هذه الصفحة
Composable Preview
@Preview features
@Preview tips
Additional Resources
Editor actions
Live Templates
Gutter icons
Iterative code development
Android Studio brings a lot of new features specifically for Jetpack Compose. It embraces a code-first approach while improving the developer productivity without having to choose between using design interface or code editor.
A fundamental difference between View-based UI and Jetpack Compose is that Compose doesn’t rely on View to render its composables. As a consequence of this architecture approach, Android Studio offers extended features for Jetpack Compose without having to open an emulator or connect to a device. Compared to Android Views, this allows a faster, iterative process for developers to implement their UI designs.
To enable Android Studio-specific features for Jetpack Compose, you need to add these dependencies in your application build.gradle file:
debugImplementation "androidx.compose.ui:ui-tooling:1.3.2"
implementation "androidx.compose.ui:ui-tooling-preview:1.3.2"
Note: These dependencies are already present when you create your project from the Compose template.
Composable Preview
A composable is defined by a function, and annotated with @Composable:
@Composable
fun SimpleComposable() {
    Text("Hello World")
}
￼
To enable a preview of this composable, create another composable, annotated with @Composable and @Preview. This new, annotated, composable now contains the composable you created initially, SimpleComposable:
@Preview
@Composable
fun ComposablePreview() {
    SimpleComposable()
}
The @Preview annotation tells Android Studio that this composable should be shown in the design view of this file. Starting with Android Studio Electric Eel, you can see live updates to your composable preview as you make your edits.
￼
You can add parameters manually in your code to customize the way Android Studio renders @Preview. You can even add the @Preview annotation to the same function multiple times to preview a composable with different properties.
@Preview features
Android Studio offers some features to extend composable previews. You can change their container design, interact with them, or deploy them directly to an emulator or device.
LocalInspectionMode
You can read from the LocalInspectionMode CompositionLocal to see if the composable is rendered in a preview (inside an inspectable component). If the composition is rendered in aYou  preview, LocalInspectionMode.currentevaluates to true. This information allows you to do customize your preview; for example, you can show a placeholder image in the preview window instead of showing real data.
if (LocalInspectionMode.current) {
    // Show this text in a preview window:
    Text("Hello preview user!")
} else {
    // Show this text in the app:
    Text("Hello $name!")
}
Interactive mode
The interactive mode allows you to interact with a preview similarly to how you would on a device running your program, like a phone or tablet. The interactive mode is isolated in a sandbox environment (meaning, isolated from other previews), where you can click elements and enter user input in the preview. It’s a quick way to test different states, gestures, and even animations of your composable.
Preview interactive mode runs directly inside Android Studio without an emulator running, which results in some limitations:
No network access
No file access
Some Context APIs may not be fully available
Note: This feature has to be enabled manually.
￼
￼
Deploy Preview
You can deploy a specific @Preview to an emulator or physical device. The preview is deployed within the same project app as a new activity, so it shares the same context and permissions. It does not require you to write boilerplate code asking for a permission if it has already been granted!
Click the Deploy to Device icon ￼ next to the @Preview annotation or at the top of the preview, and Android Studio deploys that @Preview to your connected device or emulator.
￼
￼
Use with different devices
In Android Studio Electric Eel, you can edit the device parameter of the Preview annotation to define configurations for your Composables in different devices.
￼
When the device parameter has an empty string (@Preview(device = “”)), you can invoke autocomplete by pressing Ctrl + Space. Then, you can set the values of each parameter.
￼
From autocomplete, you can select any device option from the list–for example, @Preview(device = “id:pixel_4”). Alternatively, you can enter a custom device by choosing spec:width=px,height=px,dpi=int… to set the individual values of each parameter.
￼
To apply, press Enter, or cancel with Esc.
If you set an invalid value, the declaration is underlined in red and a fix may be available (Alt + Enter (⌥ + ⏎ for macOS) > Replace with …. The Inspection attempts to provide a fix that is closest to resembling your input.
￼
Multipreview Annotations
With multipreview, you can define an annotation class that itself has multiple @Preview annotations with different configurations. Adding this annotation to a composable function automatically renders all of the different previews at once. For example, you can use this annotation to preview multiple devices, font sizes, or themes at the same time without repeating those definitions for every single composable.
Start by creating your own custom annotation class:
@Preview(
    name = "small font",
    group = "font scales",
    fontScale = 0.5f
)
@Preview(
    name = "large font",
    group = "font scales",
    fontScale = 1.5f
)
annotation class FontScalePreviews
You can use this custom annotation for your preview composables:
@FontScalePreviews
@Composable
fun HelloWorldPreview() {
    Text("Hello World")
}
￼
You can combine multiple multipreview annotations and normal preview annotations, to create a more complete set of previews. Combining multipreview annotations doesn't mean all the different combinations are shown. Instead, each multipreview annotation acts independently and renders only its own variants.
@Preview(
    name = "dark theme",
    group = "themes",
    uiMode = UI_MODE_NIGHT_YES
)
@FontScalePreviews
@DevicePreviews
annotation class CombinedPreviews
@CombinedPreviews
@Composable
fun HelloWorldPreview() {
    MyTheme { Surface { Text("Hello world") } }
}
￼
The mix-and-match nature of multipreview-- and normal preview!-- lets you more comprehensively test many properties of larger scale projects.
Code navigation and composable outlines
You can hover over a preview to see the outlines of the composables contained within. Clicking on a composable outline triggers your editor view to navigate to its definition.
￼
Copy @Preview render
Every rendered preview can be copied as an image by right clicking on it.
￼
Set background color
By default, your composable is displayed with a transparent background. To add a background, add the showBackground and backgroundColor parameters. Keep in mind that backgroundColor is an ARGB Long, not a Color value:
@Preview(showBackground = true, backgroundColor = 0xFF00FF00)
@Composable
fun WithGreenBackground() {
    Text("Hello World")
}
￼
Dimensions
By default, @Preview dimensions are chosen automatically to wrap its content. If you want to set the dimensions manually, you can add heightDp and widthDp parameters. Keep in mind those values are already interpreted as dp-- you don't need to add .dp at the end of the value:
@Preview(widthDp = 50, heightDp = 50)
@Composable
fun SquareComposablePreview() {
    Box(Modifier.background(Color.Yellow)) {
        Text("Hello World")
    }
}
￼
Locale
To test different user locales, you need to add the locale parameter:
@Preview(locale = "fr-rFR")
@Composable
fun DifferentLocaleComposablePreview() {
    Text(text = stringResource(R.string.greetings))
}
￼
System UI
If you need to display the status and action bars inside a preview, add the showSystemUi parameter:
@Preview(showSystemUi = true)
@Composable
fun DecoratedComposablePreview() {
    Text("Hello World")
}
￼
UI mode
The parameter uiMode can take any of the Configuration.UI_* constants and allows you to change the behavior of the preview accordingly. For example, you can set the preview to Night Mode to see how the theme reacts.
￼
@Preview tips
Benefits and best practices
One of the primary benefits of using @Preview composables is to avoid reliance on the emulator in Android Studio. You can save the memory-heavy startup of the emulator for more final look-and-feel changes, and @Preview's ability to make and test small code changes with ease.
To leverage @Preview annotation most effectively, make sure to define your screen(s) in terms of the state it receives as input and the events that it outputs. In addition to improved testability, your screen(s) render easily in your preview!
@Preview and large data sets
Very often, a need arises where you must pass a large data set to your composable preview. To do this, simply pass sample data to a Composable Preview function by adding a parameter with the @PreviewParameter annotation.
@Preview
@Composable
fun UserProfilePreview(
    @PreviewParameter(UserPreviewParameterProvider::class) user: User
) {
    UserProfile(user)
}
To provide the sample data, create a class that implements PreviewParameterProvider and returns the sample data as a sequence.
class UserPreviewParameterProvider : PreviewParameterProvider {
    override val values = sequenceOf(
        User("Elise"),
        User("Frank"),
        User("Julia")
    )
}
This renders one preview per data element in the sequence:
￼
You can use the same provider class for multiple previews. If necessary, limit the number of previews by setting the limit parameter.
@Preview
@Composable
fun UserProfilePreview(
    @PreviewParameter(UserPreviewParameterProvider::class, limit = 2) user: User
) {
    UserProfile(user)
}
annotation class Preview
You can always 'command + Click' on the @Preview annotation in Android Studio for a full list of parameters that can be adjusted when customizing your preview.
annotation class Preview(
    val name: String = "",
    val group: String = "",
    @IntRange(from = 1) val apiLevel: Int = -1,
    val widthDp: Int = -1,
    val heightDp: Int = -1,
    val locale: String = "",
    @FloatRange(from = 0.01) val fontScale: Float = 1f,
    val showSystemUi: Boolean = false,
    val showBackground: Boolean = false,
    val backgroundColor: Long = 0,
    @UiMode val uiMode: Int = 0,
    @Device val device: String = Devices.DEFAULT
)
Additional Resources
To read more about how Android Studio promotes @Preview ease of use, and more Tooling tips, check out the blog Compose Tooling.
Editor actions
Android Studio has also features inside the editor area to improve your productivity with Jetpack Compose.
Live Templates
Android Studio has added these Compose-related live templates, which allow you to enter code snippets for fast insertion by typing the corresponding template abbreviation:
comp to set up a @Composable function
prev to create a @Preview composable function
paddp to add a padding Modifier in dp
weight to add a weight Modifier
W, WR, WC to surround the current composable with a Box, Row, or Columncontainer
Gutter icons
Gutter icons are contextual actions visible on the sidebar, next to the line numbers. Android Studio introduces several gutter icons specific to Jetpack Compose to ease your developer experience.
Deploy preview
You can deploy a @Preview to the emulator or physical device directly from the gutter icon:
￼
Color picker
Whenever a color is defined inside or outside a composable, its preview is shown on the gutter. You can change the color via the color picker by clicking on it like this:
￼
Image resource picker
Whenever a drawable, vector, or image is defined inside or outside a composable, its preview is shown on the gutter. You can change it via the image resource picker by clicking on it like this:
￼
Iterative code development
As a mobile developer, you’re often developing your app’s UI step by step rather than developing everything at once. Android Studio embraces this approach with Jetpack Compose by providing tools that don’t require a full build to inspect, modify values and verify the final result.
Live edit of literals
Android Studio can update in real time some constant literals used in composables within previews, emulator, and physical device. Here are some supported types:
Int
String
Color
Dp
Boolean
￼
You can view constant literals that trigger real time updates without the compilation step by enabling literal decorations through the Live Edit of literals UI indicator:
￼
Note: The Live Edit of literals UI indicator will be displayed next to Code/Split/Design as long


Extraocular framerate boosting

Some of the most fps heavy features of TMPE are around junctions - priority signs, traffic lights, junction restrictions (enter blocked junction), etc.
Vehicle AIs need to use collision detection at junctions just like anywhere else. Which means they are also using vehicle grid.
Could we create a OcularGrid which is like vehicle grid but just contains flag per cell as to whether that bit of the map is in camera view? (Is there already something like this in vanilla game?) The existing vehicle grid "coordinate" could then be used to check against the ocular grid, minimising grid inspection overheads.
An 'outer rim' region could be defined where stuff that's just out of camera view is treated as in camera view so that if the camera pans a little things on the periphery look more correct.
The OcularGrid would be recalculated whenever camera moves/tilts/zooms/etc, but would otherwise remain static.
We could then basically skip collision detection and all sorts of other stuff for junctions that are outside camera view. Vehicles would ignore (or just use significantly more basic computations for...) priority signs, traffic lights, junction restrictions and collision detection, and anything else that eats up CPU, when not in camera view.
To retain some sort of reality in terms of traffic congestion reporting, noise pollution, etc., the segments at those junctions would be heavily speed nerfed (in such a way to avoid affecting pathfinder) to compensate for the ignored computations at the junction. We already have speed nerfing architecture as part of priority signs tool (and possibly traffic light tool, especially if #666 is implemented) so it would just hook in to that.
The feature would be optional, via mod options setting, as some users would prefer to keep things as realistic as possible. But for people who want max fps with "good enough" simulation, extraocular framerate boosting could help.
EDIT: We also have simulation accuracy setting (currently missing from mod options) - that too could be greatly reduced for stuff outside of camera view.

there is already what you call the occular grid. it is used for camera frustum culling in the rendering process. its even a two step process where the games first makes a more primitive check to get an approximation, and later a more evolved check to determine what should be rendered.  i made a mini mod in order to visualize if CO did it right because the code looked fishy. I can give you my mod to get started, even though I'd rather not have this feature implemented because in that case i prefer "realism" or rather consistency in the simulation. I don't want the traffic patterns to change just because i moved my camera. if i'd play for visuals only I'd not use tm:pe.

I'd rather not have this feature implemented because...

It would be optional, a setting in mod options, something like:

[x] Enable extraocular simulation culling

The same ocular grid (or whatever it is called in vanilla game) could also be used for improved caching when rendering TMPE overlays.

@DaEgi01 I tried that mod but doesn't seem to do anything or maybe I hit wrong buttons xD
Anyways I am going to use that approach to make rendering all visible overlays in one loop instead of loop through every segment/node for each overlay. We have to think what resolution should it have for that.

I can give you my mod to get started

If it's already in a repository, could it be added to the CitiesSkylinesMods github org?

Fire Controllers' vehicle grid visualiser mod might be useful for testing stuff: https://github.com/FireController1847/Cities-Skylines-Grid-Drawer

done, its actually pretty primitive :)

I'd rather not have this feature implemented because...

It would be optional, a setting in mod options, something like:

[x] Enable extraocular simulation culling

The same ocular grid (or whatever it is called in vanilla game) could also be used for improved caching when rendering TMPE overlays.

opportunity costs :P
I'd rather see a IMO more important feature, more optimization, less bugs or cleaner code.

we could always use an extra set of hands :)

Simple framerate boosts would certainly be appreciated by the community as DLCs and mods seem to accumulate more and more fps drag, especially in large cities. There are still users who hesitate using TMPE because of fps. If there was a way to get at least 30 fps, this would be sufficient for the next years, without the necessity for a pathfinding overhaul.
So I had another idea that could enable a smoother visual representation without adding too much complexity. It's a simple interpolated approximation of the coordinates of moving objects - not sacrificing accuracy, but instead, 3D latency and some memory. My first hope was that NVidia would provide an AI-based frame boost by using their existing pre-rendered frames. But at the moment, their DLSS is focused on upscaling and anti-aliasing. They in fact offer such a feature for graphical applications and video rendering, though. So it might only be a matter of time until they release GPU fps boosts for CPU-bound games.
Regardless, in a fixed setup like a map, this could be simplified by using interpolation, without AI usage, since there's no moving camera for fixed coordinates. Interpolation should be significantly less complex than the accurate calculation of all objects. It's also a process that could be multi-threaded or performed on the GPU without an effort (depends on Unity engine's internal handling and the question if vehicle object values or solely vector objects are interpolated). By only interpolating one inter-frame, 50 to 80 percent fps gain would be possible - at least for the vehicle calculation.
Memory overhead would be required for the caching of the next accurate state (NEXT) and the last accurate state (LAST).
The workflow would look like this:

Calculate next state accurately
1.1 Store state in NEXT but don't update the source values
1.2 Update source values from LAST instead (only if LAST is already filled)
Approximate next source
2.1 Update source values by interpolating NEXT and LAST
2.2 Switch pointers of NEXT and LAST

This is for a 50% interpolation. It could be extended to a two-frame interpolation (i.e. ~50% + ~75%), sacrificing the latency of another frame, but increasing fps twice the factor. It's a bit more challenging though because the interpolation factor would have to be derived from the lag since the last frame, which differs significantly between accurate calculation and approximation. Time.deltaTime could be used to determine the difference. Optionally, the approximation could also be limited to the OutsideGrid but I think it would add more complexity than necessary to have different latencies inside and outside the OcularGrid. The latency shouldn't be notable at all because (1) it doesn't affect the mouse pointer and UI itself, and (2) NVidia uses/used 3 frames for pre-rendering which is only disruptive for FPS shooters.
What's your opinion?

@matfax I'm working on FPS Booster mod so there will be solution for fps problems. Game has fps problems because UI is very slow and bottlenecks CPU = main thread.
Depends on PC configuration, FPS can be >80% higher than without the mod (have you ever seen more than 100fps in this game? I did, even >200) 😃
Regards to FPS, TM:PE doesn't affect it at all (if you don't use any of its overlays 😅) TM:PE can only slow down simulation due to more realistic vehicle behaviour, but simulation is running on different thread and is more or less independent from FPS(besides sim-main thread sync issues), it has own fixedTime clock 60 frames/second, IIRC.
This particular issue is related with a way how the mod is rendering those overlays (it's slow, old and frametime consuming code).
Basically, currently each overlay layer(can show different things) iterates over all objects(nodes/segments) to render itself - there are multiple layers which can be enabled simultaneously.
My idea, already discussed, is to create manager which could collect all visible objects within camera frustum and based on that "cache" render specific layer/layers. Single iteration, plus if no layers visible we could even stop caching these objects to save some frame time (needs to run on main thread 😕).
Your idea is nice but game already does that thing for vehicles and citizens. It simulates about 4 frames each second for each entity(citizen/vehicle) (every step it fills 2 frames) and movement is interpolated, based on positions from those two frames.

@krzychu124 Thank you for clarifying this. I observed that traffic load also induced fps load, so I suspected the traffic simulation was causing this. I'm playing on a machine with 64GB, 6 CPU cores, and a GTX 1080. My test map has 0 population and only low outside traffic. But I'm using high-res assets (~ 4500 total) and a lot of mods (including your Mini FPS Booster). If it isn't the traffic simulation, then I assume it's just the rendering of the moving assets that make my fps drop to 5 when zoomed in. It's so laggy, sometimes I have to click multiple times on the UI to respond. Neither GPU nor CPU load is reaching any limit, except GPU memory (8GB total) and CPU main thread.
I'm looking forward to your "Big" FPS booster and I see its potential. Actually, I'm really eager to test it - in case you're still looking for beta testers 😅. However, I don't see how the overlays could be affected by asset rendering. I speculate that even if I hide the whole overlay and your mod completely skips the overlay rendering, I will see low fps due to my assets. But there is no logical reason for it. If I don't move the camera and pause the game, nothing is moving and the assets could theoretically be cached somehow and fps could go up. But it won't. That's why I suspected that assets are inefficiently rendered. If you're already doing traffic simulation on a separate thread and the game already interpolates moving asset objects, then I assume it's related to vector calculations and rendering. I know that the Unity engine isn't very efficient but is it really possible that there isn't a bottleneck in the asset logic as well? Or are my assets simply overloading my GPU memory?
Regardless, I know that this is getting a little bit off-topic and it's not your responsibility to fix what the base game is supposed to deliver, for that people actually have paid. It's a pity that Steam still doesn't provide a method to monetize community contributions. The work of all of you who regularly contribute to this game's modding community is really appreciated.

Test to check if simulation bottleneck fps is pretty simple and you already did it. Move camera to location with nothing to render but still not too far from moving objects (citizens/vehicles). If you stop simulation you should see fps boost, sometimes is little sometimes is significant. I noticed two issues. If you have big city with a lot of moving instances:

game uses up to 4 pathfinding threads, path requests are spread across threads to their internal queues. If all queues exceed 100 paths to calculate PathManager is trying to slow down simulation using this code:

Thread.Sleep((num - 100) / 100 + 1);

num is the max queue length of all PF internal queues, so each additional 400 queued path more slows down simulation by 1ms

render manager is reading simulation data -> needs to synchronize, so if your simulation speed (step clock) is lower than fps it's likely to see slowdowns due to that synchronization. Not to mention that 4 busy PF threads also needs to synchronize with simulation (e.g. save found path)

A bit more off-topic:
I did few experiments trying to figure out if we can add few more PF threads. Here the conclusions:

I don't have super fast CPU(i7 3.2GHz (4c/8t)), so 655k test city stress my rig to about 90% CPU, GPU and full 16RAM usage (fps was okeyish, mid 30fps with "big booster", probably max 15fps on full vanilla xD)
as a part of experiment I added one additional PF thread, so 5 in total. Game was considerably slower with big fps drops and simulation was lagging horribly, especially camera movement using keys lag on start and stop was about 1-2 seconds, because game had demand more than 100% CPU. On simulation pause game was still running 50% CPU because of processing queued pathfinds (about 10k in queue)

Summarizing, vanilla game needs 6 fast threads (1 render, 1 sim, 4 PF) and 2 for other less important stuff (audio, water sim, file monitor etc.)
p.s. contact me on Steam or TM:PE discord


Create template contact us

Create template contact us

Doesn't look good on mobile https://gyazo.com/bf5d8f99501a845ee705c8f8c0d9ffb3
Form inputs box shadow doesn't match with design, and the font as well
https://gyazo.com/9d43c7d4686d0145e0359066f40d5a49

Icon still not works, please use ionicons instead of font-awesome as design
Use list ul li  instead of span for contact detail (email, skype..)
Move form-contact class to <form> and add padding, please try to keep the gap on left/right.


Fix #369 -- Do not allow inactive users to be hijacked

Hijacking inactive users (i.e. users with is_active=False) is not allowed to prevent
dead locks, since an inactive user cannot be released.

Codecov Report

Merging #370 (330de46) into master (05cf6f6) will decrease coverage by 0.43%.
The diff coverage is 100.00%.

@@             Coverage Diff             @@
##            master     #370      +/-   ##
===========================================
- Coverage   100.00%   99.56%   -0.44%
===========================================
  Files           12       12
  Lines          229      230       +1
===========================================
  Hits           229      229
- Misses           0        1       +1

Impacted Files
Coverage Δ

hijack/permissions.py
100.00% <100.00%> (ø)

hijack/contrib/admin/admin.py
97.29% <0.00%> (-2.71%)
:arrow_down:

Continue to review full report at Codecov.

Legend - Click here to learn more
Δ = absolute <relative> (impact), ø = not affected, ? = missing data
Powered by Codecov. Last update 05cf6f6...330de46. Read the comment docs.


Create basic samples for hand-crafted *Client classes

We need basic examples showing how to override the most common defaults in hand-crafted *Client classes.

[x] #10144
[x] #10143
[ ] #11265
[ ] #11266
[x] #10132
[x] #10133
[ ] #11267
[x] (N/A) Pub/Sub LRO polling policy
[x] #10141
[x] #10142
[x] Spanner retry and backoff policies
[ ] #11268
[ ] #11269
[x] Storage (Done, added here for completeness)

I will split this into separate bugs.

I have created separate bugs for each item.  Closing.


Allow more than one static IP addresses

Resolves #32
See #32 for details.

Codecov Report

Merging #33 into master will decrease coverage by 0.44%.
The diff coverage is 65.62%.

@@            Coverage Diff             @@
##           master      #33      +/-   ##
==========================================
- Coverage    81.8%   81.36%   -0.45%
==========================================
  Files          15       15
  Lines        1407     1422      +15
==========================================
+ Hits         1151     1157       +6
- Misses        177      183       +6
- Partials       79       82       +3

Impacted Files
Coverage Δ

vnet/router.go
76.71% <63.63%> (-1.63%)
:arrow_down:

vnet/net.go
76.69% <70%> (-0.42%)
:arrow_down:

Continue to review full report at Codecov.

Legend - Click here to learn more
Δ = absolute <relative> (impact), ø = not affected, ? = missing data
Powered by Codecov. Last update 7b74bc6...c46b229. Read the comment docs.

I will add more test to increase coverage.

Thanks @hugoArregui !


refactor: move MMDExporter into TypeScript

Why

What

Part of #12
This is a PR of MMDExporter migration to TypeScript.
Checklist

[ ] Ready to be merged

@joshuaellis
I have made some corrections based on the points you pointed out.

Updated: https://github.com/pmndrs/three-stdlib/pull/74/commits/367364fd43391aee1d8fde7e73010580b5b34fc0


Machines stops after leave chunk and back.

Every time you leave Base where the machines are placed with Deep Resonance, after returning cease to operate.
As the screen below the lava is below the smelter and is hooked to power but still does not start to work. I have to destroy it and put again to start the work. The same with Valve, Purifier and Crystalizer (the biggest problem is with the Crystalizer because after the destruction he loses his progress)
Minecraft Version: 1.10.2
Deep Resonance Version: 1.10.2-1.2.7
ElecCore Version: 1.9.4-1.5.311
Forge version: 1.10.2-<IP_ADDRESS>4
Map is on Standalone server
I think it's starts after update from 1.2.5 and forge 2076 ( i can upload modpack with map ) :)
Edit: No problem on SSP
Edit2: After server restart machines works again.

What...

Look at the video:
https://drive.google.com/open?id=0Byz1G0PvYk3Fa093cC1nWTBmMXc
Crystalizer works -> Leave base and fly away -> Go back -> Crystalizer's progress freeze

but that's in specactor mode. As far as I now spectactor mode does not load chunks. i.e. tile entities will not activate if you are in spectator mode

I'm in Creative mode not Spectator ;)

You were flying through things. That can't be done in creative mode. That was definitely spectator mode

What? In 1:00 you can see landing on the roof. And at the beginning 0:04 i hit door frame.

Perhaps you sent me the wrong video because in the video I got I see someone flying through blocks all the time. Exploring caves and such.

(sorry, accidently closed)

Also I can see nothing related to Deep Resonance on that video

Yeah on the beginning i sent wrong but i edit this comment can you refresh browser tab?

Also you should have two video links.

Ok, that's strange. What other mods do you have installed? I have never seen or have this reported before and I cannot reproduce this locally

If you want test on my Server here is address:
s23.hostmc.pl:15209
modlist.txt
Exported Curse Profile: (configs + mods)
https://drive.google.com/open?id=0Byz1G0PvYk3FOXVYdnE3dXVOaXc

Testing outside a dev env doesn't really help. I can't do any really debugging except notice the problem and that I can already see in your video. BTW what about other machines? Did you test with machines from other mods to see what they do? Preferably machines placed in the same chunk as the DR machines

So maybe i send you my world?
I have liquid monitor from RFTools, Quantum Entangloporter, Lava Tank, Cables and InductionMatrix from Mekanism, in same building. Everything works. Laser from DR works too.
Generator from DR is in basement but i'm not sure it's work or not.
Chunk Screen

I place Alloy Smelter from EnderIO in same chunk and it's work too

yes, if you can upload modpack+map that might help

Link Here:
https://drive.google.com/open?id=0Byz1G0PvYk3FSjBKeEdmX2Y5dHM

I recreate bug on new world (same SMP server) funny thing: even lava image is frozen (gif below)

I'm having the same issue on my custom 1.10.2 modpack server (https://minecraft.curseforge.com/projects/blockheadism).
Whenever chunks are unloaded, DeepResonance machines (and no other machines, mind you) stop working as shown in this thread.
If you haven't found the issue yet, I assume it's not fixed yet in the latest version, but sadly I can't really test that yet because of issue #127.
If you want to I can set up a clone of my server and give you OP and SSH access on it, not really a development environment but at least you could test it live then and upload new versions as needed.
This issue existed at least since I first set up this server on September 23 and has persisted in every version since.

This bug might have been fixed in the latest version, haven't been able to test extensively yet but machines that were stopped before that I was too lazy to replace suddenly started working again.
Will report back if it stops working again.

Can confirm this bug still happens on the latest version of everything, that is, DeepResonance, Forge, CompatLayer and anything else installed on our modpack. Putting down a chunkloader "fixes" it until the server restarts.

Which versions exactly? Also what version of MC?

Also what other mods are there?

Whoops, should have mentioned yeah.

Minecraft 1.10.2
Forge version 1.10.2-<IP_ADDRESS>9
Deep Resonance version 1.11-1.3.1beta1 (marked as 1.10.2 compatible on Curse so I assume that's the right one, this bug predates 1.11 anyway)
CompatLayer 1.10-0.0.39beta
1 non-Curse mod, Unborked, but the issue happened before inclusion of this mod.
All other mods are listed here (w/o versions), here (with versions, ls output), or here (Curse modpack link).

There's a couple of client-side only mods on the server, I'm aware, I don't think those are the cause. It's easier to upload all client-mods to the server than to filter 'em out every update, but if you want I can remove 'em and see if the issue persists.
My offer to give you SSH access to a clone of the server still stands btw.

This is also happening with the valves. Blew through 4.5K diamonds because a valve got stuck in a similar fashion.

Currently playing the AoE Modpack (Version 1.0.5) on Minecraft Version 1.10.2 and it seems like I am having the same issue. Machines just stop working when I leave the server. And after joining I have to replace all of them to get them to work.

To @Schmocky , What version of DR and ElecCore?

@McJty DR: 1.4.5 ElecCore: 1.7.431


fix: list ember-copy in dependencies

Closes #52

👍 thank you for the fix @alexlafroscia !

Published in 0.3.2


Broken Pipe no matter of the geckodriver

I'm on Linux ParrotSec with Firefox Quantum (61.0, 64-bit), tried the systems geckodriver, tried 0.19.1, 0.17, all return the same result:
:: Uploading Local Known Images
  -> Inserting Path
Traceback (most recent call last):
  File "eagle-eye.py", line 230, in <module>
    main(skipFB=args.skipfb, skipIR=args.skipir, skipY=None, FBUrls=[])
  File "eagle-eye.py", line 116, in main
    g.collectLinksLocal()
  File "/home/nils/Code/Python/EagleEye/grabber/google.py", line 94, in collectLinksLocal
    pred = driver.find_element_by_xpath("/html/body/div[6]/div[3]/div[3]/div[1]/div[2]/div/div[2]/div[1]/div/div[2]/a")
  File "/usr/local/lib/python3.6/dist-packages/selenium/webdriver/remote/webdriver.py", line 393, in find_element_by_xpath
    return self.find_element(by=By.XPATH, value=xpath)
  File "/usr/local/lib/python3.6/dist-packages/selenium/webdriver/remote/webdriver.py", line 966, in find_element
    'value': value})['value']
  File "/usr/local/lib/python3.6/dist-packages/selenium/webdriver/remote/webdriver.py", line 318, in execute
    response = self.command_executor.execute(driver_command, params)
  File "/usr/local/lib/python3.6/dist-packages/selenium/webdriver/remote/remote_connection.py", line 472, in execute
    return self._request(command_info[0], url, body=data)
  File "/usr/local/lib/python3.6/dist-packages/selenium/webdriver/remote/remote_connection.py", line 495, in _request
    self._conn.request(method, parsed_url.path, body, headers)
  File "/usr/lib/python3.6/http/client.py", line 1239, in request
    self._send_request(method, url, body, headers, encode_chunked)
  File "/usr/lib/python3.6/http/client.py", line 1285, in _send_request
    self.endheaders(body, encode_chunked=encode_chunked)
  File "/usr/lib/python3.6/http/client.py", line 1234, in endheaders
    self._send_output(message_body, encode_chunked=encode_chunked)
  File "/usr/lib/python3.6/http/client.py", line 1065, in _send_output
    self.send(chunk)
  File "/usr/lib/python3.6/http/client.py", line 986, in send
    self.sock.sendall(data)
BrokenPipeError: [Errno 32] Broken pipe

I'm not able to reproduce this Issue (since it popped up 3 times already).
Did you try only 0.17 and 0.19? Please just try the most recent version(0.21.0).
You can also try to increase the SLEEP_DELAY in the config.json file.
Please report back since i havent seen this Error, neither on a physical machine(ubuntu 16.04, arch) nor on a VM (ubuntu 16.04)

My guess is that it could be related that Firefox version is Quantum? I did try the most recent version of webdriver also, same results.

I faced the same issue when I ran the script in VirtualBox with Ubuntu 18.04 (fresh install)

Linux user-VirtualBox 4.15.0-23-generic #25-Ubuntu SMP Wed May 23 18:02:16 UTC 2018 x86_64 x86_64 x86_64 GNU/Linux

I myself use Firefox 61.0 and driver 0.21.0 works fine. I will try to test it with a fresh VM. But for now i have no Idea... i will test things out and report back.

Traceback (most recent call last):
File "eagle-eye.py", line 230, in
main(skipFB=args.skipfb, skipIR=args.skipir, skipY=None, FBUrls=[])
File "eagle-eye.py", line 116, in main
g.collectLinksLocal()
File "/home/osint/EagleEye/grabber/google.py", line 94, in collectLinksLocal
pred = driver.find_element_by_xpath("/html/body/div[6]/div[3]/div[3]/div[1]/div[2]/div/div[2]/div[1]/div/div[2]/a")
File "/usr/local/lib/python3.6/dist-packages/selenium/webdriver/remote/webdriver.py", line 393, in find_element_by_xpath
return self.find_element(by=By.XPATH, value=xpath)
File "/usr/local/lib/python3.6/dist-packages/selenium/webdriver/remote/webdriver.py", line 966, in find_element
'value': value})['value']
File "/usr/local/lib/python3.6/dist-packages/selenium/webdriver/remote/webdriver.py", line 318, in execute
response = self.command_executor.execute(driver_command, params)
File "/usr/local/lib/python3.6/dist-packages/selenium/webdriver/remote/remote_connection.py", line 472, in execute
return self._request(command_info[0], url, body=data)
File "/usr/local/lib/python3.6/dist-packages/selenium/webdriver/remote/remote_connection.py", line 495, in _request
self._conn.request(method, parsed_url.path, body, headers)
File "/usr/lib/python3.6/http/client.py", line 1239, in request
self._send_request(method, url, body, headers, encode_chunked)
File "/usr/lib/python3.6/http/client.py", line 1285, in _send_request
self.endheaders(body, encode_chunked=encode_chunked)
File "/usr/lib/python3.6/http/client.py", line 1234, in endheaders
self._send_output(message_body, encode_chunked=encode_chunked)
File "/usr/lib/python3.6/http/client.py", line 1065, in _send_output
self.send(chunk)
File "/usr/lib/python3.6/http/client.py", line 986, in send
self.sock.sendall(data)
BrokenPipeError: [Errno 32] Broken pipe
Fresh VM, Xubunti v18 ....

@pierreke77 could you try ubuntu 16.04 (since this is what i tested it with).
I'm really lost on this error...

https://github.com/mozilla/geckodriver/releases - Check this for the appropriate geckodriver version

The latest commit should fix this issue regardless the Geckodriver Version.


Security Center Data not exported to excel

When we run the script with -SecurityCenter switch, SecurityCenter worksheet is created but there is no data in it. However, it shows "Total Security Advisories: 408" message which means data is fetched from azure but not being exported to excel.

This bug will be fixed in the version 3.5.9 that will be released this week.

Hello, we just release the version 3.5.9.
Can you give it a try and see if this was fixed?
Thanks

Brilliant...it works for me as well!
Minor point, the tally for SecurityCenter under the Overview worksheet shows nil - whereas the actual entries are 6439 under the SecurityCenter worksheet.

Glad it works.
Thanks for the heads-up @sbirdi , that is a bug, Security Center sheet should not be appearing there.
This is going to be fixed in version 3.5.12


how can change url params without changing route

can I change the URL params without changing the router, and without reloading the current page, just want to receive the new params

+1

https://github.com/VeliovGroup/flow-router/blob/master/docs/api/setParams.md


Spell check not work

I have a problem, spell check not work, context menu with right click por suggestions not open.
Any solution??
Tanks.

I have the same issue

Same here, its a bit annoying


feat: add Authentik authentication integration in Coolify

Changes

Integrated OAuth authentication via Authentik.
Configured Authentik as the OAuth provider in Coolify.
Added necessary environment variables for Authentik client ID, secret, and redirect URI.
Validated login flow using Authentik to ensure smooth integration.

That's just what i needed, thanks @danilomartinelli

Sorry guys, for all the notifications at the Pull Request. I was creating a new branch to push a new feature that I made to Coolify and I did a mistake and deleted my Main Branch.
But I already fix all those issues and Reopen this PR.
cc @andrasbacsai @peaklabs-dev


Add ETH gravity wrapper

Context
Gravity.sol only accepts ERC20 tokens and the requirement is to have a contract to wrap ETH <> WETH before calling Gravity.sol
What this mean is that the bridge would call EthGravityWrapper if user selected eth or Gravity if user selected erc20 token

@FinnZhangCrypto and @dandan456 may also look at this PR

okay, put in my list

okay, put in my list

Review finish and everything looks fine


Fix highlight color for class attributes that are also keywords

Same fix as #45347 but for master

Could you squash the two commits into one? See PR workflow.

Could you squash the two commits into one? See PR workflow.

Thanks! And congrats for your first merged Godot contribution :tada:

Thanks! And congrats for your first merged Godot contribution :tada:


Add back top home option

Currently While clicking on the readmeasy nothing happened
O want to do that, while clicking on the readmeasy option the page go back to home
Kindly assign this issue to me under the label of gssoc ext and hacktoberfest

it's alredy working I think.

Please check if anybody is working or not


Fix progress time formatting on portfolios

@QuincyLarson I would like to work on it, please let me know if it's not been assigned to anyone.

@QuincyLarson Leading zeros like 01 02 etc...?

Hi @rishiip thanks a lot for your interest. We would love your help. Can I recommend you to visit https://github.com/freeCodeCamp/learn and check out the issues there? We need help with the UI and the CSS in general


[BUG] Some tutorial examples no longer work

https://jfalcou.github.io/eve/html/tutorial_if_else.html
Namely the first one (https://godbolt.org/z/YxeMqxz8v) and the very last one (https://godbolt.org/z/MhvvbTE4a).

Missing brace: https://godbolt.org/z/rY9ooK948
Thanks for reporting

The second one should be https://godbolt.org/z/7KfdTbn1c
This is an old piece of doc and the code inside is not in the examples/ test set, this should also be revised.


v3-rc0: ionic cordova resources changes indendation of config.xml

What version of the CLI are you using? Output of ionic --version
3.0.0-rc0
Short description of the problem:
Executing ionic cordova resources changes the indendation of the whole config.xml file and marks all lines as changed in git. (Tested on newly created Ionic project created with ionic start and blank starter template)
What behavior are you expecting?
ionic cordova resources only changes entries that actually were changed in the file.
Post the output of ionic info below please
global packages:
@ionic/cli-utils : 1.0.0-rc.0
Cordova CLI      : 6.5.0
Ionic CLI        : 3.0.0-rc.0

local packages:
@ionic/app-scripts              : 1.3.6
@ionic/cli-plugin-cordova       : 1.0.0-rc.0
@ionic/cli-plugin-ionic-angular : 1.0.0-rc.0
Ionic Framework                 : ionic-angular 3.1.1

System:
Node       : v6.10.2
OS         : Windows 10
Xcode      : not installed
ios-deploy : not installed
ios-sim    : not installed

Known issue--I blame xml2js. We are looking into using elementtree, which is the package Cordova uses to modify config.xml.

I can't seem to find a decent library in node for xml parsing. I don't think I'm gonna worry about this for now. The CLI will use 4 spaces for indentation of config.xml because that's what Cordova uses. It will need to rewrite significant portions of the file, especially when dealing with resources, unfortunately.

Then maybe we should just adapt the indentation of configure.xml in the base and starter templates? Or will this break other, unrelated stuff?

On 2. May 2017, at 01:26, Dan Imhoff<EMAIL_ADDRESS>wrote:
I can't seem to find a decent library in node for xml parsing. I don't think I'm gonna worry about this for now. The CLI will use 4 spaces for indentation of config.xml because that's what Cordova uses. It will need to rewrite significant portions of the file, especially when dealing with resources, unfortunately.
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub, or mute the thread.

Yep, I am working on it.


app crashed while deploying tflite loaded model and Android V2 Embedding error

whenever i give input to model my suddenly crashed everytime and also getting error about deprecated version of android V2 embedding so what's the solution of this?  i saw that this package is updated about 23 months ago so  can i know that where i can got my solution?

I think since these @shaqian has been busy with other stuffs and he/she is not able to respond to the issues here on this package. So it will be ideal to get a local version of this package, go through to the migration support yourself and get it working locally. If you are generous enough, you can open a PR  see if a merge is possible. If not you enjoy the package locally and maintain it yourself. I hope this helps, since I am going to do the exact same thing.
Migration support article: https://docs.flutter.dev/release/breaking-changes/plugin-api-migration


Add content module

Adds a content module and moves anything related into it. This is a reworking of #267 but preserves the git history.
 Move Content Models into a subdirectory

 Move Content Models into a subdirectory


SSO/SAML Avatar Sync

Describe the feature you'd like
LDAP has Avatar sync, and that's nice. But I'm not seeing that as a thing for SSO/SAML for Bookstack, but I believe it is technically possible. Can we please get Bookstack SSO/SAML to support Avatar sync from the IdP? I think it would be appreciated by users.
Describe the benefits this would bring to existing BookStack users
A consistent experience for rapidly identifying authors based on the avatar they use. With the LDAP method this is possible (Bookstack) but the SSO/SAML documentation page doesn't mention Avatar sync. When many staff members switch between tools, they often notice the avatars people use, and can recognise that avatar more rapidly than the name, giving context to the author. It also adds a positive effect to pride in staff.
Can the goal of this request already be achieved via other means?
Well right now I am aiming to use LDAP to achieve this, but SSO/SAML being able to do this would make authentication likely more convenient.
Have you searched for an existing open/closed issue?

[X] I have searched for existing issues and none cover my fundemental request

How long have you been using BookStack?
0 to 6 months
Additional context
No response

Hi @BloodyIron, Thanks for the request.
When you mention SSO/SAML, Do you specifically mean something other that SAML when stating SSO?
When it comes to SAML, do you know of a widely agreed upon standard for avatar images? I remember looking before but not finding anything, but I'm not much of a SAML pro.

I'm really talking about the method on this page : https://www.bookstackapp.com/docs/admin/saml2-auth/
I am not familiar with the options from a technical perspective here, but in similar vein to how LDAP pulls the Avatar attribute from user-sync, I suspect that same property is reachable via SAML. In my particular case, pulling from Google Workspace.
Not sure how to answer your question better than that, hope it helps!

Thanks for confirming those points.
Just done another quick search, for avatar data in SAML responses for Google and came up empty. I don't think image data in SAML responses is a common thing.
It would be possible to import an avatar from Google, by querying a seperate Google API (With a different kind of auth), but I wouldn't want to add anything that vendor-specific or additional-in-scope to the existing SAML work.
This technically could be added using our logical theme system, with some hackery, since we do emit login/registration specific events that could be hooked into.

Yeah I myself would rather use a platform-agnostic method instead of one specific to Google, so I hear your concern on that. I'm probably just going to use LDAP then since that seems to be "standard" or so.
Before opening this ticket I did some cursory searches on the topic of SAML + Avatar sync, and it seemed to be "standard"-ish, so it's a bummer that you couldn't find any way to do it with Google Workspace SAML. I just now (as I'm typing this) did a cursory look-up on Google Workspace SAML avatar/image sync (or of similar nature) and could not find anything. Looks like maybe Google hasn't made this feature a "thing" in their SAML ecosystem.
Would this feature be possible for other SAML providers (authentik?) as some sort of "standard" feature thinggy? The current scope I'm working with is Google Workspace, but I'm likely to implement Bookstack in another scope that may be using authentik for SAML/SSO.
Thanks for looking into this! Yay!

I'm going to close this off since I don't see this moving forward without clear indication of a current user need that is possible for that environment and aligns with a standard or is common across SAML providers. I did search again but came up relatively empty.
Happy for further input to be provided and this can be re-opened if needed, otherwise don't want an extra issue hanging around if there's not much we can do about it.

@ssddanbrown I thought you might like to know that user Avatars seem to be passed through SAML from Google Workspace without any real effort! But... only some of the time (unsure why, probably Googly issues).
As you mentioned, you didn't really see Avatar data from Google Workspace SAML. So that's why I mention this. I haven't done anything special so far as I can tell!
My user doesn't get the Avatar, but I've seen 3x users get their avatars, so it's ~^~WoRkInG~~^~ ish, yay!
Just thought you might benefit from knowing this hidden gem ;) Thanks again for your help!

@BloodyIron Unless disabled, or configured to use another service, BookStack will use gravatar by default to get user avatars based upon email address. I'd guess it's likely this at play, with those specific users having configured gravatar for their email.

ohhhh you might be right, thanks! I'll have to check that aspect :)


KinFragLib 2022

Description
Update KinFragLib data based on KLIFS dataset from 2022.
Todos

[ ] Add data/v1 (KinFragLib 2019) and data/latest (KinFragLib 2022)
[ ] Rerun preprocessing, fragmentation, subsetting, recombination, ChEMBL query based on code updates https://github.com/volkamerlab/KinaseFocusedFragmentLibrary/pull/28
[ ] Rerun notebooks in this repository (update input file paths to data/latest)

Status

[ ] Ready to go

@dominiquesydow we found a small issue in the Kinase fragments meta data which has an impact on the growing of fragments (see https://github.com/volkamerlab/KinaseFocusedFragmentLibrary/issues/33). After fixing this, we might create a new 2023 version.

Hi @AndreaVolkamer, good, thanks! Does this mean you intend to close this PR? Ok from my side, please go ahead.

Hi @dominiquesydow we will close this PR, update will be taken care of here: https://github.com/volkamerlab/KinFragLib/pull/58


Error loading baseline weights

Loading baseline with its weights throws the following error:
RuntimeError: Error(s) in loading state_dict for CNN:
size mismatch for dense.weight: copying a param with shape torch.Size([56, 64]) from checkpoint, the shape in current model is torch.Size([15, 64]).
size mismatch for dense.bias: copying a param with shape torch.Size([56]) from checkpoint, the shape in current model is torch.Size([15]).

That actually can be fixed just by changing the number of classes to 56, indicating the baseline was trained only in the mood/theme subset.
Besides that, how do I feed an audio into the model for inference? Just using the analyse function is not working. And what about that is_full_audio parameter in that function? Do I have to run inference on 29.1s chunks?
Just one more thing, I created this fork, and it works fine when training, but on validation I got some errors. The first one, I solved by modifying line 130 on the solver, because the data loader returns 3 values, not 2. The second one, which I'm still not able to fix, was:
ValueError: Only one class present in y_true. ROC AUC score is not defined in that case.
thrown by line 172 on the solver. Is this bacause the solver was only meant to work with the mood/theme subset, and for that subset every label contains more than 2 tags?

The baseline has been provided by @minzwon, perhaps he can reply.


Atom continuously crashing on Mac OS X

Running Mac OS X Yosemite. Trying to edit any files, atom freezes up, then is not responding, then has to be force quit. Restarting app/Force quitting not solving issue.

I had installed minimap plugin and atom-beautify plugins. Uninstalled both, problem persisted after each uninstall.

Does the problem persist if Atom is run in safe mode? '(atom --safe)'

@zfisher91 Also, is Atom crashing or is it just freezing (unresponsive), and which version of Atom are you using?

I'm having something very similar.  In my case it becomes unresponsive requiring a force quite.  Occasionally OSX will report 'Atom closed unexpectedly'.

@JonForest would you mind opening a new Issue? I'm not sure your situation is related and since this has gone for so long without a response, I'm going to close this.
If you have any questions, please let me know!


generate_metashape_stub_file.py

This script is NOT an actual script to be used with Metashape itself or for modifying a Metashape project.
I did, however, not find a better suited repository to contribute this file.
Reasoning:
The Metashape python module is distributed as a .whl and contains only a compiled .pyd file, which code editors cannot use for type hints/annotations.
This script generates a Metashape.pyi stub file which can be used for this purpose.
It is a slightly crude implementation with some manual intervention here and there because I obviously don't have direct insight into the closed source code.
(I would, however, very much appreciate it if such a .pyi file was already included in the Metashape python module wheel so that a script as this one wouldn't be needed. Just as a side note :D)

Hi!
If I understood correctly - the problem is that while sometimes IDEs like PyCharm are able to provide auto-completion:

This is not always the case, f.e. in such cases when it can't deduce type of variable chunk:

Are you talking about exaclty this problem? Or there are other cases?

I don't understand why PyCharm can't deduce type in such case - for me, rtype hint in addChunk() should be enough:

Moreover, in discussion about the same problem in Blender API - https://devtalk.blender.org/t/proposal-generate-stub-files-for-blender/15819/20 - they say that such rtype hint should work, so may be we just need to check what sort of rtype-style is supported by PyCharm and after that - update docs generation w.r.t. that style.

It seems that autocompletion starts to work if I change rtype-hint to :rtype: Metashape.Chunk:

Please tell me if there are more problematic cases. For now it looks to be fixable by adjusting rtype-hint style.

Ok, interesting. I am using Visual Studio Code on Windows with the default Python extension and Pylance.
VSCode is not able to get type annotations from the Metashape package installed via the downloaded .whl because it's just a compiled Metashape.pyd file at least on Windows.
I tried it with PyCharm right now and apparently it generates these stub files automatically which is why autocompletion works in PyCharm "out of the box".
So basically my script is doing what PyCharm is already doing automatically.

This does not really fit into this repository then, but I think it would be great if the Metashape python module included such stub files  and type information directly, without having to rely on e.g. PyCharm generating them (or writing a script to generate a .pyi file like the one I submitted).
The discussion on the Blender API that you linked is very similar to what I am proposing for Metashape.
I think this would improve working with the Metashape API a lot.

I am closing this pull request, PyCharm does the job better than what I built and it's not fitting for the purpose of this repository.

Thanks a lot for reporting the problem, we will try to improve auto-completion at .whl-level.

Type-hinting in docstrings was updated in Metashape 2.1 (pre-release .whl can be downloaded here) - now it is compatible with PyCharm docs-type-hinting parser:

Note that you may need to remove an old Metashape wheel and after that install the new one (instead of installing the new one over the old one) - in such way PyCharm will update its Binary Skeletons for Metashape.

Thank you once again! Your script works like a charm and we plan to include .pyi stub-file in our .whl-bundles (probably starting with the next Metashape 2.1 pre-release).
Just to be clear - you don't mind that we will use (and and probably change) your script in our internal CI build process?

Just to be clear - you don't mind that we will use (and and probably change) your script in our internal CI build process?

Feel free to take from the script what you can use. Thanks for the work on this issue, I'll check it out the next time I'm writing Python scripts for Metashape.

Since pre-release 2.1.0 (build 17453) Metashape includes .pyi stub file inside .whl.


Add monthly dependabot updates to GitHub Actions

That will ensure that actions stay up-to-date automatically.
PR which would be created automatically after you'll merge it: https://github.com/paskal/hugo-theme-jane/pull/2

@xianmin this is safe to merge, please review it once you have a chance.


Seeded search question

Good afternoon,
Is it somehow possible to add a constraint that a certain field of the seeded entity must be filled?
I have now the code below
seedConstraints: { typeConstraints: [Persoon], min: 1, max: 1},
But I would only allow person entities where the name != undefined or empty.
Now I handle this later on in the code but it would be nice that the service doesn't even popup for the end user.

Hello. Not directly in this sense of saying that you want a Person item type with a name property defined.
But are you aware of the semantic property seeded search constraints? These allow you to specify that you accept seeds with properties of specific semantic types, rather than specific item+property type ids. Semantic types can be specified through Schema Designer, see https://docs.i2group.com/analyze/4.4.4/semantic_types.html.
So you can, for example, create a service that accepts seeds containing a first name and a last name without caring about the actual item type of the seed.
In the Example Connector the
Semantic Property Search service demonstrates how to require seed records that have values for properties with specific semantic types. See the example: https://github.com/i2group/analyze-connect-node-sdk/blob/2797e776846ddb35932fb1d33148de6b0439a714/samples/example-connector/src/index.ts#L485-L524

Hi @Colvin-Cowie-i2
Cool, I wasn't aware of that functionality. It works almost as expected now. I only get Typescript errors when I try to add that person to the result with result.addEntityFromSeed(). However it works as expected. Do you have suggestions to solve the e
        const seedEntity = semanticSeed.seed.isType(Persoon) ? result.addEntityFromSeed(semanticSeed.seed) : undefined;```

![image](https://github.com/user-attachments/assets/3de5e33d-29d4-4af5-bcfc-21c566de0b59)

It does see the printscreens below.
isType(Person)

result.addEntityFromSeed(sementicSeed.seed)

Hi @stvdo,
When using semantic seeds the incoming record could be either a link or an entity, whilst this will work if the seed is the correct entity if a link was to be provided the connector would error for example. Based on this you'll need to check if the seed is a link or entity before checking the type add seed/entity results along with access properties of the seed, see below:
      if (!semanticSeed.seed.isLink && semanticSeed.seed.isType(Person)) {
        console.log('Age is: ', semanticSeed.seed.getProperty('Age'));
        result.addEntityFromSeed(semanticSeed.seed);
      }

We could potentially look at changing isType in the future to make it a little bit smarter but for now the typings are indicating potential problems in the code. Hope this helps!

Thanks @Jonny-Cornwell-i2 this solved the issue indeed.


Add setting to also upload files other than Atom's default files

Add a setting, extraFiles, that defines files inside the ~/.atom directory other than Atom's default config files that should also be uploaded.
Also implements #31

Great job. Can you also create a spec for the feature?

I'll see what I can do :). That will be tomorrow though

That's true, I changed it.

It worked on my machine, then I pushed it to Travis where it fails, and now it fails on my machine too...

@olmokramer pull the changes from master. The auth token used in specs has changed.

Ah... That explains. Thanks! New commits will be up in an hour or so

Ok I used an env GITHUB_TOKEN and that worked! Merged the master for the changes, so we'll see

Hmm... Still doesn't work for Travis

It's using the old token, for whatever unknown reason :angry:

Bad Travis :p


move pr-update workflow logic into shell functions

Change-Id: Id4aba343b780a1d28d20c43f87b004467e360e8e

Codecov Report
All modified and coverable lines are covered by tests :white_check_mark:

Project coverage is 97.66%. Comparing base (03df39a) to head (a6e3c3e).

Additional details and impacted files
@@           Coverage Diff           @@
##             main      #55   +/-   ##
=======================================
  Coverage   97.66%   97.66%
=======================================
  Files          18       18
  Lines         171      171
  Branches        4        4
=======================================
  Hits          167      167
  Misses          2        2
  Partials        2        2

:umbrella: View full report in Codecov by Sentry.
:loudspeaker: Have feedback on the report? Share it here.


Receiver LON and LAT dump1090-fa/ADS-B Exchange

The receiver longitude and latitude needs to be asked for when  dump1090-fa is installed due to the fact this information is not made available as it is when dump1090-mutability is installed.

Agreed. :)

Sadly LAT and LON appear to be set using their website...


How can I avoid the cooking value to expanded on each retry?

Package
cookie_manager
Version
5.4.0
Operating-System
Android, iOS
Steps to Reproduce
Hi,
I'm using RetryInterceptor from "dio_smart_retry".
On each retry the cookie value is expanded.
For example: cookie value is "A"
First try: cookie = "A"
Second try: cookie = "AA"
Third: "AAA"
How can I solve this?
Expected Result
The same cookie value on each retry.
Actual Result
Described in steps.

The ask the team of dio_smart_retry for help.


#16 Winning Screen

Also, don't forget to pull from origin to sync your fork. Thanks!

Merged in #59


Granted Admin users ability to impersonate members

refs https://github.com/TryGhost/Ghost/issues/12126

Adds migration to add impersonation permission to administrators
Adds default permission fixture for administrators to read member impersonation urls
Allows administrators to create member impersonation magic links

@allouis @naz @daniellockyer Need 👀 on the small new migration which adds member impersonation permission to Administrator users which needs :)


[web]: Flare animations throw unimplemented error

Flare animations don't work in Flutter for web apps. The two issues I see are that DDC seems to think that ImageShader from dart:uiis not a subclass ofShaderand_addPathWithMatrix` is not implemented.

Casting to a Shader makes the exception go away but the analyzer shows an "unnecessary cast" warning. (see below)
The app throws an UnimplementedError during rendering (see below)

Steps to Reproduce

Clone https://github.com/2d-inc/Flare-Flutter
go to example/simple project
run flutter create --web . and flutter run -d chrome
Go to flare_flutter/lib/flare.dart and cast ImageShader to Shader on line 973 and line 1035:

            ? ui.ImageShader(images[textureIndex], ui.TileMode.clamp,
                ui.TileMode.clamp, _identityMatrix) as Shader

          ? ui.ImageShader(
              image, ui.TileMode.clamp, ui.TileMode.clamp, _identityMatrix) as Shader

observe UnimplmentedError thrown in console output

Logs

                    packages/flare_flutter/flare.dart:971:13: Error: A value of type 'ImageShader' can't be assigned to a variable of type 'Shader'.
                     - 'ImageShader' is from 'dart:ui'.
                     - 'Shader' is from 'dart:ui'.
                    Try changing the type of the left hand side, or casting the right hand side to 'Shader'.
                                ? ui.ImageShader(images[textureIndex], ui.TileMode.clamp,
                                ^
                    packages/flare_flutter/flare.dart:1033:11: Error: A value of type 'ImageShader' can't be assigned to a variable of type 'Shader'.
                     - 'ImageShader' is from 'dart:ui'.
                     - 'Shader' is from 'dart:ui'.
                    Try changing the type of the left hand side, or casting the right hand side to 'Shader'.
                              ? ui.ImageShader(
                              ^

[ +367 ms] ══╡ EXCEPTION CAUGHT BY RENDERING LIBRARY ╞═════════════════════════════════════════════════════════
[   +7 ms] The following UnimplementedError was thrown during paint():
[        ] Cannot add path with transform matrix
[        ] User-created ancestor of the error-causing widget was:
[        ] Expanded org-dartlang-app:///packages/flare_example/main.dart:39:15
[        ] When the exception was thrown, this was the stack:
[        ] package:build_web_compilers/src/dev_compiler/dart_sdk.js 3992:11    throw_
[        ] package:build_web_compilers/src/dev_compiler/dart_sdk.js 129294:17  [_addPathWithMatrix]
[        ] package:build_web_compilers/src/dev_compiler/dart_sdk.js 129281:33  addPath
[        ] package:flare_flutter/flare.dart 219:17                             get path
[        ] package:flare_flutter/flare.dart 235:26                             draw
[        ] package:flare_flutter/flare.dart 733:18                             draw
[        ] package:flare_flutter/flare_actor.dart 397:15                       paintFlare
[        ] package:flare_flutter/flare_render_box.dart 226:7                   paint
[        ] package:flutter/src/rendering/object.dart 2193:7                    [_paintWithContext]
[        ] package:flutter/src/rendering/object.dart 184:12                    paintChild
[        ] package:flutter/src/rendering/box.dart 2501:14                      defaultPaint
[        ] package:flutter/src/rendering/flex.dart 948:7                       paint
[        ] package:flutter/src/rendering/object.dart 2193:7                    [_paintWithContext]
[        ] package:flutter/src/rendering/object.dart 184:12                    paintChild
[        ] package:flutter/src/rendering/shifted_box.dart 70:14                paint
[        ] package:flutter/src/rendering/object.dart 2193:7                    [_paintWithContext]
[        ] package:flutter/src/rendering/object.dart 184:12                    paintChild
[        ] package:flutter/src/rendering/box.dart 2501:14                      defaultPaint
[  +16 ms] package:flutter/src/rendering/custom_layout.dart 361:5              paint
[        ] package:flutter/src/rendering/object.dart 2193:7                    [_paintWithContext]
[        ] package:flutter/src/rendering/object.dart 184:12                    paintChild
[        ] package:flutter/src/rendering/proxy_box.dart 123:14                 paint
[        ] package:flutter/src/material/material.dart 550:11                   paint
[        ] package:flutter/src/rendering/object.dart 2193:7                    [_paintWithContext]
[        ] package:flutter/src/rendering/object.dart 184:12                    paintChild
[        ] package:flutter/src/rendering/proxy_box.dart 123:14                 paint
[        ] package:flutter/src/rendering/object.dart 384:12                    pushLayer
[        ] package:flutter/src/rendering/proxy_box.dart 1755:14                paint
[        ] package:flutter/src/rendering/object.dart 2193:7                    [_paintWithContext]
[        ] package:flutter/src/rendering/object.dart 184:12                    paintChild
[        ] package:flutter/src/rendering/proxy_box.dart 123:14                 paint
[        ] package:flutter/src/rendering/object.dart 2193:7                    [_paintWithContext]
[        ] package:flutter/src/rendering/object.dart 184:12                    paintChild
[        ] package:flutter/src/rendering/proxy_box.dart 123:14                 paint
[        ] package:flutter/src/rendering/object.dart 2193:7                    [_paintWithContext]
[        ] package:flutter/src/rendering/object.dart 135:10                    _repaintCompositedChild
[        ] package:flutter/src/rendering/object.dart 95:5                      repaintCompositedChild
[        ] package:flutter/src/rendering/object.dart 937:29                    flushPaint
[        ] package:flutter/src/rendering/binding.dart 343:19                   drawFrame
[        ] package:flutter/src/widgets/binding.dart 774:13                     drawFrame
[        ] package:flutter/src/rendering/binding.dart 280:5                    [_handlePersistentFrameCallback]
[        ] package:flutter/src/scheduler/binding.dart 1035:15                  [_invokeFrameCallback]
[        ] package:flutter/src/scheduler/binding.dart 977:9                    handleDrawFrame
[        ] package:flutter/src/scheduler/binding.dart 893:5                    [_handleDrawFrame]
[        ] package:build_web_compilers/src/dev_compiler/dart_sdk.js 153169:23  <fn>
[        ] The following RenderObject was being processed when the exception was fired: FlareActorRenderObject#5aae6:
[        ] creator: FlareActor ← Expanded ← Column ← Center ← _BodyBuilder ← MediaQuery ←
[        ] LayoutId-[<_ScaffoldSlot.body>] ← CustomMultiChildLayout ← AnimatedBuilder ← DefaultTextStyle ←
[        ] AnimatedDefaultTextStyle ← _InkFeatures-[GlobalKey#389cd ink renderer] ← ⋯
[        ] parentData: offset=Offset(0.0, 0.0); flex=1; fit=FlexFit.tight (can use size)
[        ] constraints: BoxConstraints(0.0<=w<=1200.0, h=1238.0)
[        ] size: Size(1200.0, 1238.0)
[        ] This RenderObject has no descendants.
[        ] ════════════════════════════════════════════════════════════════════════════════════════════════════
[        ] Another exception was thrown: UnimplementedError: Cannot add path with transform matrix
[        ] Another exception was thrown: UnimplementedError: Cannot add path with transform matrix
[   +9 ms] Another exception was thrown: UnimplementedError: Cannot add path with transform matrix

Still experiencing this error, all my flare actors are no longer working after updating to the latest version of flutter and converting from flutter_web -> flutter.

Same error on the dev channel when running the newest version of flutter with the platform web.

The type error has since been fixed by https://github.com/flutter/engine/pull/12161

Path transform issue is now fixed. All Flutter_Flare repo samples now work (except checkbox which requires PathMetrics which has an open issue).

I still have issue
what can I do ?

Please file a new issue with a repro case. Your animation may be using a
particular feature in Flare where the engine has no web implementation. For
example we don't support tiling of radial gradients.
On Mon, Mar 2, 2020 at 12:14 AM mohammadne<EMAIL_ADDRESS>wrote:

I still have issue
what can I do ?
—
You are receiving this because you modified the open/close state.
Reply to this email directly, view it on GitHub
https://github.com/flutter/flutter/issues/39352?email_source=notifications&email_token=ABGTTKXOSHWF6RZVIJQWX3DRFNTGXA5CNFSM4IQNB3X2YY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGOENOKRNI#issuecomment-593275061,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/ABGTTKQU6SUY4TD65YVUGTLRFNTGXANCNFSM4IQNB3XQ
.


Chore: drop the unused legal_aid_application.student_finance attribute

What
Drop unused column.
Link to related story
Column was migrated to applicant and partner models 16 months ago. This is the second step
that drops it. Subsequent PR to remove ignore line once we deploy this.
Removing a column in strong-migrations gem
Checklist
Before you ask people to review this PR:

Tests and rubocop should be passing: bundle exec rake
Github should not be reporting conflicts; you should have recently run git rebase main.
The standards in the Git Workflow document on Confluence should be followed
There should be no unnecessary whitespace changes. These make diffs harder to read and conflicts more likely.
The PR description should say what you changed and why, with a link to the JIRA story.
You should have looked at the diff against main and ensured that nothing unexpected is included in your changes.
You should have checked that the commit messages say why the change was made.

Shouldn't this drop the ignore_column code too?


[history] refactor history client with timeout wrapper

What changed?

added timeout template
refactored history client to move out timeout logic
added test for timeout client

Why?
make history client simple again

How did you test it?
unit test

Potential risks

Release notes

Documentation Changes

Pull Request Test Coverage Report for Build 018e111d-de99-4e0f-8838-877ce068b0c6
Details

1 of 1 (100.0%)  changed or added relevant line in 1 file are covered.
48 unchanged lines in 11 files lost coverage.
Overall coverage increased (+0.06%) to 63.254%

Files with Coverage Reduction
New Missed Lines
%

client/history/client.go
1
35.78%

common/persistence/sql/sqlplugin/postgres/db.go
2
80.0%

common/persistence/sql/sqlplugin/postgres/task.go
2
73.4%

common/task/parallel_task_processor.go
2
93.06%

common/task/weighted_round_robin_task_scheduler.go
2
88.06%

service/history/execution/mutable_state_task_refresher.go
2
64.24%

service/history/task/fetcher.go
2
85.57%

service/history/queue/timer_queue_processor_base.go
3
77.82%

service/history/task/transfer_standby_task_executor.go
4
86.6%

service/history/task/cross_cluster_task_processor.go
8
80.79%

Totals

Change from base Build 018e10f1-ea04-47e7-9f09-e8c4fb27206c:
0.06%

Covered Lines:
92734

Relevant Lines:
146606

💛  - Coveralls


Spot release YANK 0.15.2

Release to include features for active projects for @davidlmobley and @jchodera

The YANK things look okay, it will probably be a matter of running rebuild a few times since the drive ran out of space from pulling down files then trying to build


Update contract-deploy-tools version to 0.6.1

Related to: trustlines-network/project#703

Codecov Report

Merging #337 into master will not change coverage.
The diff coverage is n/a.

@@           Coverage Diff           @@
##           master     #337   +/-   ##
=======================================
  Coverage   64.64%   64.64%
=======================================
  Files          48       48
  Lines        3295     3295
=======================================
  Hits         2130     2130
  Misses       1165     1165

Continue to review full report at Codecov.

Legend - Click here to learn more
Δ = absolute <relative> (impact), ø = not affected, ? = missing data
Powered by Codecov. Last update eba7b3a...2d5d685. Read the comment docs.


Use JSP path name as transaction name

rather than the name of the generated servlet
closes elastic/apm-agent-java#429
depends on elastic/apm-agent-java#748

I merged a PR disabling the annoying JMS test that failed, so you can merge with master..


Windows inference

Hello everyone!
Can I run it on windows machine?

Hello everyone! Can I run it on windows machine?

Yeah there is a windows fork

Duplicate of #39

thx for sharing

We've tested on Windows 11, Cuda 12.1. It works well.


Remove "LINE" section reader

Because it is not currently output by mrbc.

OK. Now is the time to remove this.


Key name ';' is empty or contains forbidden characters.

Describe the issue
I built polybar right after forking and cloning the repo. Now it doesn't start and in the log says [read below].
Expected behavior:
Polybar should start.
Actual behavior:
Polybar doesn't start.
Was it working before?
I downloaded, some days ago, the latest release (with sha256sum: 4d22c977969a561f561fdc7a609073854d8fea8a9eec6941e12a80457edcb63a) and building with that it was working.
Also with the AUR stable version (the one I use daily) it was working.
To Reproduce
Clone the repo with git clone --recursive https://github.com/polybar/polybar, and build with:
mkdir build
cd build
cmake ..
make -j$(nproc)
# Optional. This will install the polybar executable in /usr/local/bin
sudo make install

(from the wiki)
Polybar Log
Post everything polybar outputs to the terminal when you run it and the issue occurs below
---
polybar|notice:  Parsing config file: /home/koraynilay/.config/polybar/config
polybar|error: /home/koraynilay/.config/polybar/config:1: Key name '<feff>;' is empty or contains forbidden characters.
---

Environment:

WM: i3
Distro: Arch Linux
Output of polybar -vvv:

polybar 3.4.0-96-gfc42da8-dev

Features: +alsa +curl +i3 +mpd +network(libnl) +pulseaudio +xkeyboard

X extensions: +randr (+monitors) +composite +xkb +xrm +xcursor

Build type: Release
Compiler: /usr/bin/c++
Compiler flags:  -Wall -Wextra -Wpedantic -O3 -DNDEBUG
Linker flags:

Additional context
I did a bit of research, and 0xFEFF is the Byte Order Mark. So there could be a problem while reading the encoding.

What does the config look like where this happens? Does it contain the Byte Order Mark?
If so, what editor did you use to save the config?
It's possible that the editor added the Byte Order Mark.
In any case, polybar doesn't seem to handle this very well, though I don't know why because we only blacklist certain characters and the BOM is certainly not part of that list.

I use termite with vim (from the gvim package).
Here's my config
;==========================================================
;
;
;   ██████╗  ██████╗ ██╗  ██╗   ██╗██████╗  █████╗ ██████╗
;   ██╔══██╗██╔═══██╗██║  ╚██╗ ██╔╝██╔══██╗██╔══██╗██╔══██╗
;   ██████╔╝██║   ██║██║   ╚████╔╝ ██████╔╝███████║██████╔╝
;   ██╔═══╝ ██║   ██║██║    ╚██╔╝  ██╔══██╗██╔══██║██╔══██╗
;   ██║     ╚██████╔╝███████╗██║   ██████╔╝██║  ██║██║  ██║
;   ╚═╝      ╚═════╝ ╚══════╝╚═╝   ╚═════╝ ╚═╝  ╚═╝╚═╝  ╚═╝
;
;
;   To learn more about how to configure Polybar
;   go to https://github.com/polybar/polybar
;
;   The README contains a lot of information
;
;==========================================================

[colors]
background = #00151515
background-alt = #00151515
foreground = #ffffff
foreground-alt = #555
red = #ff0000
black = #000000
alert = #ff7000

[fonts]
font0 = tiramisu:style=Regular:size=10;1
font1 = unifont:fontformat=truetype:size=8:antialias=false;0
font_icons0 = Noto Sans Symbols2:pixelsize=9;1
font_icons1 = DejaVu Serif:pixelsize=9;1
;Noto Music

;font1 = Tw Cen MT:fontformat=truetype:size=8:antialias=false;0
;font2 = Tw Cen MT:pixelsize=10;1
;font0 = fixed:pixelsize=10;1

;font1 = "Font Awesome 5 Free:style=Solid:pixelsize=8;3"
;font2 = "Font Awesome 5 Free:style=Regular:pixelsize=8;3"
;font3 = "Font Awesome 5 Brands:pixelsize=8;3"

[bar/startmenu]
override-redirect = true
height = 500
width = 400
bottom = true

;modules-left = pwmenu bspwm i3 temperature mpd
background = ${colors.background}
foreground = ${colors.foreground}

[bar/bottom]
;override-redirect = true
;monitor = ${env:MONITOR:HDMI-1}
width = 100%
height = 20
;offset-x = 1%
;offset-y = 1%
;radius = 6.0
fixed-center = true

bottom = true

background = ${colors.background}
foreground = ${colors.foreground}

line-size = 2
;line-color = #f00

border-size = 0
border-color = #ffff0000

padding-left = 3
padding-right = 1

module-margin-left = 2
module-margin-right = 2

font-0 = ${fonts.font0}
font-1 = ${fonts.font1}
font-2 = ${fonts.font_icons0}
font-3 = ${fonts.font_icons1}

modules-left = pwmenu bspwm i3 mpd
modules-center = i3mode xkeyboard_locks xwindow
modules-right = filesystem xbacklight battery memory cpu temperature upds wlan eth xkeyboard pulseaudio time_bottom date

tray-position = right
tray-padding = 1
tray-detached = false
;tray-background = #0063ff
tray-background = ${colors.background}

;wm-restack = bspwm
;wm-restack = i3

;override-redirect = true

;scroll-up = bspwm-desknext
;scroll-down = bspwm-deskprev

;scroll-up = i3wm-wsnext
;scroll-down = i3wm-wsprev

cursor-click = pointer
cursor-scroll = ns-resize

[bar/top]
width = 100%
height = 20
bottom = false
override-redirect = true

border-size = 2

padding-left = 3
padding-right = 3
module-margin-left = 2
module-margin-right = 2
line-size = 2

background = ${colors.background-alt}
foreground = ${colors.foreground}

font-0 = ${fonts.font0}
font-1 = ${fonts.font1}
font-2 = ${fonts.font_icons0}
font-3 = ${fonts.font_icons1}

;modules-left = mpd
modules-center = xwindow
;modules-right = filesystem temperature date

[module/xwindow]
type = internal/xwindow
format-padding = 5
label = "%title%"
label-maxlen = 125

[module/xkeyboard_locks]
type = internal/xkeyboard
blacklist-0 = num lock
blacklist-1 = scroll lock
label-layout =
;label-indicator-on = " %name% "
label-indicator-padding = 2
label-indicator-margin = 2
label-indicator-background = ${colors.alert}
label-indicator-foreground = #000
;label-indicator-underline = ${colors.black}

[module/xkeyboard]
type = internal/xkeyboard
blacklist-0 = num lock
blacklist-1 = scroll lock
blacklist-2 = caps lock

label-layout =%layout%

label-indicator-padding = 0
label-indicator-margin = 0
label-indicator-background = ${colors.black}
label-indicator-underline = ${colors.black}

[module/filesystem]
type = internal/fs
interval = 30

mount-0 = /
fixed-values = false

label-mounted = %{F#ff0000}%mountpoint%%{F-}: %used% (%free%)
;label-mounted = %{F#ff0000}%mountpoint%%{F-}: %used%/%total% (%free%)
label-unmounted = %mountpoint% not mounted
label-unmounted-foreground = ${colors.foreground-alt}

[module/bspwm]
type = internal/bspwm

label-focused = %name%
label-focused-background = ${colors.background-alt}
label-focused-underline= ${colors.red}
label-focused-padding = 2

label-occupied = %name%
label-occupied-padding = 2

label-urgent = %name%
label-urgent-background = ${colors.alert}
label-urgent-padding = 2

label-empty =
label-empty-foreground = ${colors.foreground-alt}
label-empty-padding = 2

; Separator in between workspaces
; label-separator = |

[module/i3]
type = internal/i3
format = <label-state>
index-sort = true
wrapping-scroll = false
strip-wsnumbers = true

; Only show workspaces on the same output as the bar
;pin-workspaces = true

; focused = Active workspace on focused monitor
label-focused = %name%
label-focused-foreground = ${colors.foreground}
label-focused-background = #00202020
;${colors.background}
label-focused-underline = ${colors.red}
label-focused-padding = 2

; unfocused = Inactive workspace on any monitor
label-unfocused = %name%
label-unfocused-padding = 2

; visible = Active workspace on unfocused monitor
label-visible = %name%
label-visible-background = ${self.label-focused-background}
label-visible-underline = ${self.label-focused-underline}
label-visible-padding = ${self.label-focused-padding}

; urgent = Workspace with urgency hint set
label-urgent = %name%
label-urgent-background = ${colors.alert}
label-urgent-padding = ${self.label-focused-padding}

; Separator in between workspaces
; label-separator = |

[module/i3mode]
type = internal/i3
format = <label-mode>

label-mode-padding = 1
label-mode-foreground = #000
label-mode-background = ${colors.alert}

[module/mpd]
type = internal/mpd
format-online = <icon-prev> <icon-stop> <toggle> <icon-next>     <label-time>     <label-song> <unkartist-song>

icon-prev = ⏮
icon-stop = ⏹
icon-play = ⏵
icon-pause = ⏸
icon-next = ⏭

;label-song = %artist-and-title%

label-song = %cartist% %title%
unkartist-song =

;(%album%)
label-song-maxlen = 125
label-song-ellipsis = true
label-time = %elapsed%/%total%

[module/xbacklight]
type = internal/xbacklight

format = <label> <bar>
label = BL

bar-width = 10
bar-indicator = |
bar-indicator-foreground = #fff
bar-indicator-font = 2
bar-fill = ─
bar-fill-font = 2
bar-fill-foreground = #9f78e1
bar-empty = ─
bar-empty-font = 2
bar-empty-foreground = ${colors.foreground-alt}

[module/backlight-acpi]
inherit = module/xbacklight
type = internal/backlight
card = intel_backlight

[module/cpu]
type = internal/cpu
interval = 1
;format-prefix = " "
;format-prefix = "CPU: "
label = %percentage:2%%
label-underline = #ff0000

[module/memory]
type = internal/memory
interval = 1
;format-prefix = "RAM: "
label = %percentage_used%%
format-underline = #ffffff
;%gb_used%/%gb_total%

[module/wlan]
type = internal/network
interface = net1
interval = 3.0

format-connected = <ramp-signal> <label-connected>
format-connected-underline = #9f78e1
label-connected = %essid%

format-disconnected =
;format-disconnected = <label-disconnected>
;format-disconnected-underline = ${self.format-connected-underline}
;label-disconnected = %ifname% disconnected
;label-disconnected-foreground = ${colors.foreground-alt}

ramp-signal-0 = 
ramp-signal-1 = 
ramp-signal-2 = 
ramp-signal-3 = 
ramp-signal-4 = 
ramp-signal-foreground = ${colors.foreground-alt}

[module/teth]
;not working
type = internal/network
interface = enp0s20f0u1
interval = 0.5

format-connected-underline = #00ff00
;label-connected = %ifname%, Up: %upspeed% Down: %downspeed%
label-connected = %downspeed%; %upspeed%; %local_ip%

format-disconnected = enp0s20f0u1: disconnected
format-disconnected-underline = ${colors.red}
;label-disconnected = %ifname%: disconnected
label-disconnected-foreground = ${colors.foreground}

[module/eth]
type = internal/network
interface = enp3s0
interval = 1

format-connected-underline = #00ff00
;label-connected = %ifname%, Up: %upspeed% Down: %downspeed%
label-connected = %downspeed%; %upspeed%; %local_ip%

format-disconnected = enp3s0: disconnected
format-disconnected-underline = ${colors.red}
;label-disconnected = %ifname%: disconnected
label-disconnected-foreground = ${colors.foreground}

[module/date]
type = internal/date
interval = 1

date = "%d-%m-%Y"
label = %{A1:termite --hold -t CALENDAR -e "cal -y":}%date%%{A}
;label = %{A1:yad --calendar --title=calendar:}%date%%{A}

[module/time_bottom]
type = internal/date
interval = 1

time = %H:%M:%S
label = %time%

;[module/popup-calendar]
;type = custom/script
;exec = ~/.config/polybar/popup-calendar.sh
;interval = 5
;click-left = ~/.config/polybar/popup-calendar.sh --popup &

[module/pulseaudio]
type = internal/pulseaudio

format-volume = <label-volume>
label-volume = %percentage%%
label-volume-foreground = ${colors.foreground}
label-muted = "0%"
label-muted-foreground = ${colors.red}

[module/alsa]
type = internal/alsa

format-volume = <label-volume> <bar-volume>
label-volume = VOL
label-volume-foreground = ${root.foreground}

format-muted-prefix = " "
format-muted-foreground = ${colors.foreground-alt}
label-muted = sound muted

[module/battery]
type = internal/battery
battery = BAT0
adapter = ADP1
full-at = 98

format-charging = <animation-charging> <label-charging>
format-charging-underline = #ffb52a

format-discharging = <animation-discharging> <label-discharging>
format-discharging-underline = ${self.format-charging-underline}

format-full-prefix = " "
format-full-prefix-foreground = ${colors.foreground-alt}
format-full-underline = ${self.format-charging-underline}

ramp-capacity-0 = 
ramp-capacity-1 = 
ramp-capacity-2 = 
ramp-capacity-foreground = ${colors.foreground-alt}

animation-charging-0 = 
animation-charging-1 = 
animation-charging-2 = 
animation-charging-foreground = ${colors.foreground-alt}
animation-charging-framerate = 750

animation-discharging-0 = 
animation-discharging-1 = 
animation-discharging-2 = 
animation-discharging-foreground = ${colors.foreground-alt}
animation-discharging-framerate = 750

[module/temperature]
type = internal/temperature
thermal-zone = 0
warn-temperature = 60

format = <label>
format-warn = <label-warn>

label = %temperature-c%
label-warn = %temperature-c%
label-warn-foreground = ${colors.black}
format-underline = #ffff00

[module/pwmenu]
type = custom/text
content = ⏼
content-foreground = ${colors.red}
click-left = ~/.config/i3/ctrlaltdel/exit.sh

[module/powermenu]
type = custom/menu
expand-right = true
format-spacing = 1

label-open = "⏼"
label-open-foreground = ${colors.red}
label-close = ⤥ cancel
label-close-foreground = ${colors.red}
label-separator = |
label-separator-foreground = ${colors.foreground-alt}

menu-0-0 = reboot
menu-0-0-exec = menu-open-1
menu-0-1 = power off
menu-0-1-exec = menu-open-2
menu-0-2 = logout
menu-0-2-exec = menu-open-3

menu-1-0 = cancel
menu-1-0-exec = menu-open-0
menu-1-1 = reboot
menu-1-1-exec = sudo reboot

menu-2-0 = power off
menu-2-0-exec = sudo poweroff
menu-2-1 = cancel
menu-2-1-exec = menu-open-0

menu-3-0 = logout
menu-3-0-exec = sudo i3-msg exit
menu-3-1 = cancel
menu-3-1-exec = menu-open-0

[module/upds]
type = custom/text
content = 🡣
click-left = mapunmap_updates.sh

[settings]
screenchange-reload = true
;compositing-background = xor
;compositing-background = screen
;compositing-foreground = source
;compositing-border = over
;pseudo-transparency = false

Is your editor configured to add the BOM character to files?
What happens is that the first line starts with the BOM character, because of that and because the line contains the = character, polybar thinks that this is a key-value line and <feff>; is the key and everything after the first = character the value. It then fails because ; is not allowed in key names.
Polybar only supports UTF-8 and the unicode standard does not recommend using BOM in UTF-8 files. I think polybar should still handle this gracefully though. We should probably ignore the BOM character at the beginning of files.

No, I don't think it does. But I may have opened it once with vs-code or another editor that has probably added the BOM char.
I fixed using :set nobomb in vim and saving the file.
Yeah, I think that the BOM should be ignored.
The strange thing, I think, is that with the tarball version it didn't happen while with the git clone it did.

The strange thing, I think, is that with the tarball version it didn't happen while with the git clone it did.

The tarball version is the previous release that still had the old config parser. The old config parser has lots of other bugs though.
I will leave this open in case anyone wants to take a crack at it.

Oh ok, thanks I didn't know that.


CLIMATE-854 Ensure that ocw runs with Python 3.X

This PR addresses https://issues.apache.org/jira/browse/CLIMATE-854

Merged build triggered. Test Failed.

I will look at what deprecation is highlted within the travis-ci build.

Coverage remained the same at 80.617% when pulling 82856a686578c0f754f4a2960789a348c5842550 on lewismc:CLIMATE-854 into fba1ce638eeacd73b60f46e1ce3c8f96afc4466d on apache:master.


Make package compatible with php7.0

I just made the package compatible with php7.0. I needed to use it for a realitvely old project and thought it could be nice to add this compatiblity.

Support of PHP 7.0 has been dropped and even security support will end in 3 month according to php.net.


SocketError: timed out

Hello,
iam facing a SocketError: timed out.
mongo-connector  -m localhost:27017 -t http://localhost:7474/db/data -d neo4j_doc_manager
[ALWAYS] mongo_connector.connector:51 - Starting mongo-connector version: 2.5.1
[ALWAYS] mongo_connector.connector:51 - Python version: 2.7.9 (default, Jun 29 2016, 13:08:31)
[GCC 4.9.2]
mongo_connector.connector:51 - Platform: Linux-3.16.0-4-amd64-x86_64-with-debian-8.5
mongo_connector.connector:51 - pymongo version: 3.5.1
mongo_connector.connector:167 - MongoConnector: Can't find /var/www/mongo-connector/oplog.timestamp, attempting to create an empty progress log
mongo_connector.connector:51 - Source MongoDB version: 3.4.9
mongo_connector.connector:51 - Target DocManager: mongo_connector.doc_managers.neo4j_doc_manager version: unknown
httpstream:168 - ! SocketError: timed out
mongo_connector.oplog_manager:670 - Exception during collection dump
Traceback (most recent call last):
File "/usr/local/lib/python2.7/dist-packages/mongo_connector/oplog_manager.py", line 625, in do_dump
upsert_all(dm)
File "/usr/local/lib/python2.7/dist-packages/mongo_connector/oplog_manager.py", line 611, in upsert_all
mapped_ns, long_ts)
File "/usr/local/lib/python2.7/dist-packages/mongo_connector/util.py", line 35, in wrapped
return f(*args, **kwargs)
File "/usr/local/lib/python2.7/dist-packages/mongo_connector/doc_managers/neo4j_doc_manager.py", line 89, in bulk_upsert
tx.commit()
File "/usr/local/lib/python2.7/dist-packages/py2neo/cypher/core.py", line 333, in commit
return self.post(self.__commit or self.__begin_commit)
File "/usr/local/lib/python2.7/dist-packages/py2neo/cypher/core.py", line 275, in post
rs = resource.post({"statements": self.statements})
File "/usr/local/lib/python2.7/dist-packages/py2neo/core.py", line 307, in post
response = self.__base.post(body, headers, **kwargs)
File "/usr/local/lib/python2.7/dist-packages/py2neo/packages/httpstream/http.py", line 984, in post
return rq.submit(**kwargs)
File "/usr/local/lib/python2.7/dist-packages/py2neo/packages/httpstream/http.py", line 433, in submit
http, rs = submit(self.method, uri, self.body, self.headers)
File "/usr/local/lib/python2.7/dist-packages/py2neo/packages/httpstream/http.py", line 362, in submit
raise SocketError(code, description, host_port=uri.host_port)
SocketError: timed out

The time out leads to an empty  oplog.timestamp, so if i restart i get tons of exceptions, like

2017-09-20 23:20:15,869 [CRITICAL] mongo_connector.oplog_manager:670 - Exception during collection dump
Traceback (most recent call last):
File "/usr/local/lib/python2.7/dist-packages/mongo_connector/oplog_manager.py", line 625, in do_dump
upsert_all(dm)
File "/usr/local/lib/python2.7/dist-packages/mongo_connector/oplog_manager.py", line 611, in upsert_all
mapped_ns, long_ts)
File "/usr/local/lib/python2.7/dist-packages/mongo_connector/util.py", line 46, in wrapped
reraise(new_type, exc_value, exc_tb)
File "/usr/local/lib/python2.7/dist-packages/mongo_connector/util.py", line 35, in wrapped
return f(*args, **kwargs)
File "/usr/local/lib/python2.7/dist-packages/mongo_connector/doc_managers/neo4j_doc_manager.py", line 89, in bulk_upsert
tx.commit()
File "/usr/local/lib/python2.7/dist-packages/py2neo/cypher/core.py", line 333, in commit
return self.post(self.__commit or self.__begin_commit)
File "/usr/local/lib/python2.7/dist-packages/py2neo/cypher/core.py", line 288, in post
raise self.error_class.hydrate(error)
File "/usr/local/lib/python2.7/dist-packages/py2neo/cypher/error/core.py", line 54, in hydrate
error_cls = getattr(error_module, title)
Neo4jOperationFailed: 'module' object has no attribute 'ConstraintValidationFailed'

right now i think, that because of the restart and the not existing oplog file value, it trys to completly restart and Neo4j cant insert the same content again. Or my mongodb is defect, i already repaired it with mongod --repair. So i would like to have a oplog.timestamp file.
I thought that i can get that with the parameter:

--batch-size ( Default: -1 - Number of records processed from the oplog before updating the timestamp file.)
like,
mongo-connector  --batch-size=100 -m localhost:27017 -t http://localhost:7474/db/data -d neo4j_doc_manager
but there is no timestamp written at anytime.
The only way i get a timestamp in the file is when i say ---no-dump, which is not realy helpful.

So, how can i write a timestamp into the - oplog.timestamp - while it processes?
Thanks

Solved it, after installing the 3.0 Update for the "neo4j_doc_manager" and using py2neo > 3, the Timestamp gets printed.