Spaces:
Sleeping
Sleeping
import re | |
import gradio as gr | |
import torch | |
from transformers import T5ForConditionalGeneration, RobertaTokenizer | |
tokenizer = RobertaTokenizer.from_pretrained("mamiksik/CommitPredictorT5PL", revision="fb08d01") | |
model = T5ForConditionalGeneration.from_pretrained("mamiksik/CommitPredictorT5PL", revision="fb08d01") | |
def parse_files(patch): | |
accumulator = [] | |
lines = patch.splitlines() | |
filename_before = None | |
for line in lines: | |
if line.startswith("index") or line.startswith("diff"): | |
continue | |
if line.startswith("---"): | |
filename_before = line.split(" ", 1)[1][1:] | |
continue | |
if line.startswith("+++"): | |
filename_after = line.split(" ", 1)[1][1:] | |
if filename_before == filename_after: | |
accumulator.append(f"<ide><path>{filename_before}") | |
else: | |
accumulator.append(f"<add><path>{filename_after}") | |
accumulator.append(f"<del><path>{filename_before}") | |
continue | |
line = re.sub("@@[^@@]*@@", "", line) | |
if len(line) == 0: | |
continue | |
if line[0] == "+": | |
line = line.replace("+", "<add>", 1) | |
elif line[0] == "-": | |
line = line.replace("-", "<del>", 1) | |
else: | |
line = f"<ide>{line}" | |
accumulator.append(line) | |
return '\n'.join(accumulator) | |
def predict(patch, max_length, min_length, num_beams, prediction_count): | |
input_text = parse_files(patch) | |
with torch.no_grad(): | |
token_count = tokenizer(input_text, return_tensors="pt").input_ids.shape[1] | |
input_ids = tokenizer( | |
input_text, | |
truncation=True, | |
padding=True, | |
return_tensors="pt", | |
).input_ids | |
outputs = model.generate( | |
input_ids, | |
max_length=max_length, | |
min_length=min_length, | |
num_beams=num_beams, | |
num_return_sequences=prediction_count, | |
) | |
result = tokenizer.batch_decode(outputs, skip_special_tokens=True) | |
return token_count, input_text, {k: 0 for k in result} | |
iface = gr.Interface(fn=predict, inputs=[ | |
gr.Textbox(label="Patch (as generated by git diff)"), | |
gr.Slider(1, 128, value=40, label="Max message length"), | |
gr.Slider(1, 128, value=5, label="Min message length"), | |
gr.Slider(1, 10, value=7, label="Number of beams"), | |
gr.Slider(1, 15, value=5, label="Number of predictions"), | |
], outputs=[ | |
gr.Textbox(label="Token count"), | |
gr.Textbox(label="Parsed patch"), | |
gr.Label(label="Predictions") | |
], examples=[ | |
[""" | |
diff --git a/.github/workflows/pylint.yml b/.github/workflows/codestyle_checks.yml | |
similarity index 86% | |
rename from .github/workflows/pylint.yml | |
rename to .github/workflows/codestyle_checks.yml | |
index a5d5c4d9..8cbf9713 100644 | |
--- a/.github/workflows/pylint.yml | |
+++ b/.github/workflows/codestyle_checks.yml | |
@@ -20,3 +20,6 @@ jobs: | |
- name: Analysing the code with pylint | |
run: | | |
pylint --rcfile=.pylintrc webapp core | |
+ - name: Analysing the code with flake8 | |
+ run: | | |
+ flake8 | |
""", 40, 5, 7, 5], | |
[""" | |
diff --git a/packages/react-native-renderer/src/ReactFabricHostConfig.js b/packages/react-native-renderer/src/ReactFabricHostConfig.js | |
index 078bf1f11ac6..b6d370882ae4 100644 | |
--- a/packages/react-native-renderer/src/ReactFabricHostConfig.js | |
+++ b/packages/react-native-renderer/src/ReactFabricHostConfig.js | |
@@ -18,7 +18,10 @@ import type { | |
TouchedViewDataAtPoint, | |
} from './ReactNativeTypes'; | |
-import {mountSafeCallback_NOT_REALLY_SAFE} from './NativeMethodsMixinUtils'; | |
+import { | |
+ mountSafeCallback_NOT_REALLY_SAFE, | |
+ warnForStyleProps, | |
+} from './NativeMethodsMixinUtils'; | |
import {create, diff} from './ReactNativeAttributePayload'; | |
import {dispatchEvent} from './ReactFabricEventEmitter'; | |
@@ -52,6 +55,7 @@ const { | |
unstable_DefaultEventPriority: FabricDefaultPriority, | |
unstable_DiscreteEventPriority: FabricDiscretePriority, | |
unstable_getCurrentEventPriority: fabricGetCurrentEventPriority, | |
+ setNativeProps, | |
} = nativeFabricUIManager; | |
const {get: getViewConfigForType} = ReactNativeViewConfigRegistry; | |
@@ -208,12 +212,14 @@ class ReactFabricHostComponent { | |
setNativeProps(nativeProps: Object) { | |
if (__DEV__) { | |
- console.error( | |
- 'Warning: setNativeProps is not currently supported in Fabric', | |
- ); | |
+ warnForStyleProps(nativeProps, this.viewConfig.validAttributes); | |
} | |
+ const updatePayload = create(nativeProps, this.viewConfig.validAttributes); | |
- return; | |
+ const {stateNode} = this._internalInstanceHandle; | |
+ if (stateNode != null && updatePayload != null) { | |
+ setNativeProps(stateNode.node, updatePayload); | |
+ } | |
} | |
// This API (addEventListener, removeEventListener) attempts to adhere to the | |
diff --git a/packages/react-native-renderer/src/__mocks__/react-native/Libraries/ReactPrivate/InitializeNativeFabricUIManager.js b/packages/react-native-renderer/src/__mocks__/react-native/Libraries/ReactPrivate/InitializeNativeFabricUIManager.js | |
index abb2883d387e..ab4fc291d6d6 100644 | |
--- a/packages/react-native-renderer/src/__mocks__/react-native/Libraries/ReactPrivate/InitializeNativeFabricUIManager.js | |
+++ b/packages/react-native-renderer/src/__mocks__/react-native/Libraries/ReactPrivate/InitializeNativeFabricUIManager.js | |
@@ -117,6 +117,8 @@ const RCTFabricUIManager = { | |
dispatchCommand: jest.fn(), | |
+ setNativeProps: jest.fn(), | |
+ | |
sendAccessibilityEvent: jest.fn(), | |
registerEventHandler: jest.fn(function registerEventHandler(callback) {}), | |
diff --git a/packages/react-native-renderer/src/__tests__/ReactFabricHostComponent-test.internal.js b/packages/react-native-renderer/src/__tests__/ReactFabricHostComponent-test.internal.js | |
index 337a4976bbe8..51e056d1c8bc 100644 | |
--- a/packages/react-native-renderer/src/__tests__/ReactFabricHostComponent-test.internal.js | |
+++ b/packages/react-native-renderer/src/__tests__/ReactFabricHostComponent-test.internal.js | |
@@ -38,7 +38,7 @@ function mockRenderKeys(keyLists) { | |
const mockContainerTag = 11; | |
const MockView = createReactNativeComponentClass('RCTMockView', () => ({ | |
- validAttributes: {}, | |
+ validAttributes: {foo: true}, | |
uiViewClassName: 'RCTMockView', | |
})); | |
@@ -200,21 +200,15 @@ describe('measureLayout', () => { | |
}); | |
describe('setNativeProps', () => { | |
- test('setNativeProps(...) emits a warning', () => { | |
+ test('setNativeProps(...) invokes setNativeProps on Fabric UIManager', () => { | |
const { | |
UIManager, | |
} = require('react-native/Libraries/ReactPrivate/ReactNativePrivateInterface'); | |
const [[fooRef]] = mockRenderKeys([['foo']]); | |
+ fooRef.setNativeProps({foo: 'baz'}); | |
- expect(() => { | |
- fooRef.setNativeProps({}); | |
- }).toErrorDev( | |
- ['Warning: setNativeProps is not currently supported in Fabric'], | |
- { | |
- withoutStack: true, | |
- }, | |
- ); | |
expect(UIManager.updateView).not.toBeCalled(); | |
+ expect(nativeFabricUIManager.setNativeProps).toHaveBeenCalledTimes(1); | |
}); | |
}); | |
diff --git a/scripts/flow/react-native-host-hooks.js b/scripts/flow/react-native-host-hooks.js | |
index 584f24ee084c..e3c98114935f 100644 | |
--- a/scripts/flow/react-native-host-hooks.js | |
+++ b/scripts/flow/react-native-host-hooks.js | |
@@ -186,7 +186,7 @@ declare var nativeFabricUIManager: { | |
payload: Object, | |
) => void, | |
) => void, | |
- | |
+ setNativeProps: (node: Object, nativeProps: Object) => Object, | |
dispatchCommand: (node: Object, command: string, args: Array<any>) => void, | |
sendAccessibilityEvent: (node: Object, eventTypeName: string) => void, | |
""", 40, 5, 7, 5] | |
] | |
) | |
if __name__ == "__main__": | |
iface.launch() | |